我有一个三级嵌套表单,但第三个类没有保存。
我有三个模型类(简化)
class A
has_one :b
accepts_nested_attributes_for :b
end
和
class B
belongs_to :a
has_many :c
accepts_nested_attributes_for :c
end
和
class C
belongs_to :b
end
我的观点(简化)
<%= form_for [@a] do |f| -%>
<%= f.fields_for :b do |b_form| -%>
<%= b_form.fields_for :c do |c_form| -%>
<% end %>
<% end %>
<% end %>
控制器
def new
@a= A.new
b = @a.b = B.new
b.c.build
end
def create
if (@a= A.create(params[:a])).valid?
//flash succes
end
end
哈希看起来像这样:
{"a"=>{"title"=>"test", "body"=>"<p>test</p>\r\n<br />", "b_attributes"=>{"title"=>"testt", "c_attributes"=>{"0"=>{"title"=>"testtt"}}}}}
但只创建了A和B. C不是,它不会在我的日志中输入错误或其他东西..
谢谢!
修改:
解决方案(感谢Zabba)
在attr_accessible :c_attributes
class B
答案 0 :(得分:2)
尝试在attr_accessible :c_attributes
class B
(应该回答)
答案 1 :(得分:0)
控制器
def new
@a= A.new
b= @a.b.build
b.c.build
end
def create
@a = A.new(params[:a])
if @a.valid?
//flash succes
end
end