Rails 3.1rc4を使用して、フォーム内のネストされたモデルにいくつか問題があります。Rails 3 Nested Modelフォーム
私は現在、次のようになりモデルがあります:
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
の有無にかかわらず試してみましたが、それは効果がなかったようです。
ありがとうございます!
誰でも私が間違っていることを示唆することはできますか?
EDITは:誤解を避けるために、私の販売コントローラの新しい方法は、次のようになります。
def new
@sale = Sale.new
@sale.customer.build
end
OKは、私の代わりに、@のsale.customer.build' 'の私は' @ sale.build_customer'すべきであることを示すいくつかの情報を見つけました。私はこれを反映するために新しい方法を修正しましたが、それでも役に立たない。 –
新しいレコードを作成するのではなく、セールレコードを編集するためのフォームをテストしましたが、正常に動作することがわかりました。つまり、コントローラに空の顧客レコードを作成したことが原因です。 '@ sale.customer.build'と' @ sale.build_customer'の両方を動作させずに試してみたところ、誰でもコントローラに必要なものを提案できますか? –