我正在创建我的第一个嵌套表单Rails 3.2.13
。User
正在注册,他填写email
,信息和password
信息..但用户点击提交时显示错误。错误在底部。address
company
我不确定这一行:attr_accessible :address_attributes, :company_attributes
我读过它可能会有所帮助,但它没有,并且由于一对一的关系,我在视图中有地址,但在模型中有地址,但是如果我有<%= f.fields_for :**address** do |builder| %>
表格,则不会显示。请问我该怎么办?:-) 帖子然后发送
"companies"=>{"name"=>"Companyname"
用户模型
class User < ActiveRecord::Base
attr_accessible ...
has_many :orders
belongs_to :address
belongs_to :company
accepts_nested_attributes_for :address, :company
attr_accessible :address_attributes, :company_attributes
公司模式
class Company < ActiveRecord::Base
attr_accessible ...
has_many :users
validates_presence_of ...
end
地址模型
class Address < ActiveRecord::Base
attr_accessible ...
has_many :orders, :foreign_key => 'payment_address_id'
has_many :orders, :foreign_key => 'delivery_address_id'
has_many :users
validates_presence_of ...
end
new.html.erb(创建新用户)
<%= form_for @user do |f| %>
...
<%= f.fields_for :addresses do |builder| %>
...
<% end %>
<%= f.fields_for :companies do |builder| %>
...
<% end %>
<%= f.submit %>
<% end %>
我点击提交时出错
Can't mass-assign protected attributes: addresses, companies
编辑:
第一个错误:我更改了班级用户
belongs_to :address
belongs_to :company
on
has_one :address
has_one :company
在地址和公司模型中我编辑
has_many :users
on
belongs_to :user
但是嵌套表单没有显示在视图中..我尝试通过添加 .build 方法来编辑用户控制器
def new
@user = User.new
@user.company.build
@user.address.build
end
但我得到了新的错误
undefined method `build' for nil:NilClass
请问我现在该怎么办?