我在使用Rails 3.1rc4的表单中嵌套模型时遇到了一些问题。Rails 3嵌套模型表格
我目前有看起来像这样的模式:
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被显示出来时,形式是呈现 - 没有错误消息,它只是不会出现。
我应该提一下,我已经在我的控制器的new
方法中试过有和没有@sale.customer.build
,但它似乎没有效果。
谢谢!
任何人都可以建议我做错了什么?
编辑:为免生疑问,我的销售控制器的新方法是这样的:
def new
@sale = Sale.new
@sale.customer.build
end
好吧,我发现了一些信息表明,而不是'@ sale.customer.build'我应该有'@ sale.build_customer'。我修改了新的方法来反映这一点,但仍然无济于事。 –
我测试过编辑销售记录的表单,而不是创建一个新记录,并且我发现它工作正常 - 因此,问题显然是在控制器中创建空的客户记录。既尝试'@ sale.customer.build'和'@ sale.build_customer'都没有工作,任何人都可以建议我需要在控制器中有什么? –