我在使用 Rails 3.1rc4 的表单中遇到了一些嵌套模型的问题。
我目前有看起来像这样的模型:
class Sale < ActiveRecord::Base
attr_accessible :customer_id, :vehicle_id, :sale_date
belongs_to :customer
accepts_nested_attributes_for :customer
end
和
class Customer < ActiveRecord::Base
attr_accessible :dealership_id, :first_name, :last_name, :address1, :email
belongs_to :dealership
has_many :sales
has_many :vehicles, :through => :sales
end
我显然已经稍微截断了这些,但所有重要信息都在那里。
我正在尝试设置一个销售表格,该表格还允许我创建一个新客户,因此accepts_nested_attributes_for :customer
是销售模型中的行。
我的表单视图看起来像(再次被截断,只有重要部分):
<%= form_for @sale, :html => {:class => 'fullform'} do |f| %>
<%= f.error_messages %>
<%= field_set_tag 'Customer Details' do %>
<% f.fields_for :customer do |builder| %>
<%= builder.label :first_name %><br>
<%= builder.text_field :first_name %>
<% end %>
<% end %>
<% end %>
我遇到的问题是,在呈现表单时,文本字段和 :first_name 的标签都没有显示 - 没有错误消息,只是没有出现。
@sale.customer.build
我应该提一下,我在控制器的方法中尝试了有无new
,但似乎没有效果。
谢谢!
谁能建议我做错了什么?
编辑:为免生疑问,我的销售控制器的新方法如下所示:
def new
@sale = Sale.new
@sale.customer.build
end