У меня проблемы с вложенными моделями в форме, использующими 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