我正在研究Rails 3.1.1.rc3,我有2个类,如下所示。
class Customer < ActiveRecord::Base
has_many :orders, :dependent => :destroy
accepts_nested_attributes_for :orders
end
class Order < ActiveRecord::Base
belongs_to :customer
end
以我的形式:
<%= form_for(@customer) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name,:class=>'textbox' %>
</div>
<%= f.fields_for :orders do |order_form| %>
<div class="field">
<%= order_form.label :number %><br />
<%= order_form.text_field :number, :class=>'textbox' %>
</div>
<%end%>
<%end%>
当它呈现时,表单的第一部分(对于客户)显示,但第二部分(对于订单)不显示。任何指针都表示赞赏。感谢。
答案 0 :(得分:4)
两件事。第一个fields_for基本上遍历customer.orders,所以如果没有订单,你将得不到输出。如果您只想要一些空白字段供用户输入订单详细信息,您通常会坚持
@customer.orders.build
在你的控制器中。其次,fields_for
与form_for
非常相似,您需要使用&lt;%=也是如此
答案 1 :(得分:1)
添加
<%= f.fields_for :orders do |order_form| %>
而不是
<% f.fields_for :orders do |order_form| %>
编辑:看看how fields_for is defined(有例子)