2010-12-30 18 views
0

現在、ネストされたフォーム(アドレスのもの)が表示されません。タグの=が示すようにRuby on Rails:ネストされたフォームが機能しない

class Address < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :poll_option 
    apply_addresslogic :fields => [[:number, :street], :city, [:state, :zip_code]] 
end 

class PollOption < ActiveRecord::Base 
    belongs_to :poll 
    has_one :address 

    accepts_nested_attributes_for :address, :allow_destroy => true 

end 

<h1>Add a new address for voting</h1> 

<% form_for @poll_option do |po_form| %> 
    <%= po_form.error_messages %> 

    <%= po_form.hidden_field :poll_id, :value => @poll.id %> 

    <% po_form.fields_for :address do |addr_form| %> 
     <%= addr_form.label :number %><br /> 
     <%= addr_form.text_field :number %><br /> 
     <br /> 
     <%= addr_form.label :street %><br /> 
     <%= addr_form.text_field :street %><br /> 
     <br /> 
     <%= addr_form.label :city %><br /> 
     <%= addr_form.text_field :city %><br /> 
     <br /> 
     <%= addr_form.label :state %><br /> 
     <%= addr_form.text_field :state %><br /> 
     <br /> 
     <%= addr_form.label :zip_code %><br /> 
     <%= addr_form.text_field :zip_code %><br /> 
     <br /> 
     <br /> 

    <% end %> 

    <%= submit_tag "Create address and vote for this one" %> 
<% end %> 

答えて

1

あなたがRailsの3を使用している場合は、<%= form_for ..<%= f.fields_for ...を、使用する必要があります。それはちょうどH1を示しており、送信ボタンを...

関連するコードそれが出力されます。

また、このフォームをレンダリングするコントローラのアクションでは、fields_forにレンダリングするオブジェクトがあるようにオブジェクト(@poll_option.build_addressなど)を構築する必要があります。

関連する問題