加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-4 – 嵌套属性的强参数在空数组时返回“未准许的

发布时间:2020-12-16 22:32:15 所属栏目:百科 来源:网络整理
导读:假设一个用户模型 使用Rails4和strong_parameters. 假设一个用户模型 class User ActiveRecord::Base has_secure_password accepts_nested_attributes_for :identity// rest of code omitted for brevityend 如果我参考指南,我应该能够做到 def user_params
假设一个用户模型
使用Rails4和strong_parameters.
假设一个用户模型
class User < ActiveRecord::Base
  has_secure_password

 accepts_nested_attributes_for :identity

//  rest of code omitted for brevity
end

如果我参考指南,我应该能够做到

def user_params
    params.require(:user).permit(:email,identity_attributes: [])
end

允许对每个identity_attributes进行mass_assignment的任何名称或号码.但是这个运行在一个“未经许可的参数:identity_attributes”

但是如果我指定了identity_attributes它是有效的
def user_params
params.require(:user).permit(:email,identity_attributes:[:last_name,:first_name])
结束

我在身份中有很多属性,我可以通过用户对它们进行mass_assign,而不指定它们.

我错过了什么吗?这是一个bug吗?

干杯

解决方法

您必须指定要更新的身份属性,包括身份实体的:id.

你会有这样的东西:

def user_params 
  params.require(:user).permit(:email,identity_attributes: [:id,:last_name,:first_name]) 
end

如果不指定:id,则Rails将尝试创建一个实体,而不是更新它.我花了所有的周末挣扎在一个简单的一对多关系使用accept_nested_attributes_for因为我没有指定允许的属性的id.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读