3

我有2个模型。会员和调查

member.rb 如下

Class Member < ActiveRecord::Base
  has_one :survey, :dependent => :destroy
  accepts_nested_attributes_for :survey

  attr_accessible :fname,:lname, :address, :city, :state, :zip, :email, :phone, :phone_alt, :e_contact, :e_contact_phone, :physician, :physician_phone, :chiropractor, :chiropractor_phone, :password, :password_confirmation, :remember_me, :survey_attributes

end

调查.rb如下

Class Survey < ActiveRecord::base
  belongs_to :member
end

但是,每当我尝试使用收到的调查属性创建成员时

ActiveModel::MassAssignmentSecurity::Error: 无法批量分配受保护的属性:调查

我正在通过控制台对此进行测试。

4

1 回答 1

2

通过has_one关联,可访问的调用应为:

attr_accessible :survey_attributes

您发布的参数需要嵌套,如下所示:

params = { :member => { :name => 'Jack', :survey_attributes => { :attribute => 'value' } } }

在表单中确保您正确构建嵌套关系,即。你必须使用:

= form_for @member do |f|
  ...
  = f.fields_for :survey do |s|
    ...

如果你有这样的设置,它应该可以工作。如果这没有发现您的错误,那么请在控制台中显示您正在尝试的内容并且无法正常工作的日志。

有关详细信息,请参阅Rails API 中的#accepts_nested_attributes_for

于 2012-04-20T23:10:16.727 回答