我一直在关注 Ryan Bates 关于嵌套表单Railscast 196的教程
新操作的表单显示测验的嵌套属性,但不显示键的嵌套属性。我猜这是因为测验有一个 has_many 关系,其中 key 有一个 has_one 关系......但我无法弄清楚我做错了什么?
任何帮助深表感谢!
这是我的模型:
class Repository < ActiveRecord::Base
has_many :quizzes, :dependent => :destroy
has_one :key, :dependent => :destroy
accepts_nested_attributes_for :key, :quizzes
end
这是我的控制器:
def new
@repository = Repository.new
3.times { @repository.quizzes.build }
@repository.key = Key.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @repository }
end
end
这是我的看法:
<div class="field">
<%= f.label :wp_uid %><br />
<%= f.text_field :wp_uid %>
<% f.fields_for :quizzes do |quiz_fields| %>
<p>
<%= quiz_fields.label :name, "Name" %><br />
<%= quiz_fields.text_field :name %>
</p>
<% end %>
<% f.fields_for :key do |key_fields| %>
<div class="field">
<%= key_fields.label :value, "Value" %><br />
<%= key_fields.text_field :value %>
</div>
<div class="field">
<%= key_fields.label :expiry, "Expiry" %><br />
<%= key_fields.date_select :expiry %>
</div>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>