【发布时间】:2012-05-21 03:13:00
【问题描述】:
我使用的是 Rails 3.2.X。这是一个 has_one 关系。
这里的一切似乎都搞定了:
class P < ActiveRecord::Base
has_one :r
accepts_nested_attributes_for :r
attr_accessible :s, :r_attributes
end
class R < ActiveRecord::Base
attr_accessible :a, :b, :c
belongs_to :p
end
表单发布的内容
"p"=>{"s"=>"5/6/2012", "r"=>{"a"=>"hello", "b"=>"world", "c"=>""}}
缩短的 P 形式:
<%= form_for(@p) do |f| %>
<%= render :partial => "r/form", :locals => { :p_form => f, :r => @p.r } %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
缩短的 R 形式部分
<%= p_form.fields_for(r) do |fr| %>
如果我像这样创建 R.new(params[p][r]) 它工作正常。 如果我像这样创建 P.new(params[p]) 我无法为 R 批量分配受保护的属性(即使它独立工作) 您会注意到我已将 r_attributes 包含为可访问的。
下面指出的正确答案是
<%= promotion_form.fields_for(:r) do |fr| %>
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.2