我有很多关于这个问题的话题,但我仍然无法理解我做错了什么:
我有两个模型,具有以下关系:
securty_user_rb:
attr_accessible ...(some fields)
:security_users_detail
has_one :security_users_detail, dependent: :destroy
security_users_detail.rb
attr_accessible ...(some fields)
belongs_to :security_user
并在security_users_controlller.rb中我在新操作中执行此操作:
@security_user = SecurityUser.new(params[:security_user])
@security_user.build_security_users_detail(security_users_detail: SecurityUsersDetail.new)
为什么我无法构建连接而我正在
无法批量分配受保护的属性:security_users_detail
错误,因为我在模型中有attr_accessible:security_users_detail?
修改
我试着在我的applicatin.rb文件中评论以下行,以检查问题是否会得到解决:
config.active_record.whitelist_attributes = true
不幸的是,我再次遇到同样的错误(重启服务器后),所以我想我的问题与其他一些事情有关。
答案 0 :(得分:0)
整个问题是由我的详细信息模型中的验证引起的 - 我有验证检查格式和某些字段的存在,所以显然rails不允许我创建具有空字段的对象。
要解决此问题,我必须使用 validate:false 。
我已经浪费了很多时间阅读有关像
这样的rails默认值config.active_record.whitelist_attributes = true
和使用attr_accessible,但似乎失败的验证可以抛出相同的
无法批量分配受保护的属性
错误。