Ruby on Rails: вложенная форма не работает - PullRequest
0 голосов
/ 31 декабря 2010

В настоящее время моя вложенная форма (адресная) не отображается.Он просто показывает h1 и кнопку отправки ...

Соответствующий код:

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 Ответ

1 голос
/ 31 декабря 2010

Если вы используете Rails 3, вы должны использовать <%= form_for .. и <%= f.fields_for ..., так как = на теге указывает, что он будет выводить.

Кроме того, в действии вашего контроллера, который отображает эту форму, вам необходимо построить объект (@poll_option.build_address или аналогичный), чтобы у fields_for был объект для визуализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...