Rails: включить индекс с помощью fields_for помощника по форме - PullRequest
3 голосов
/ 12 марта 2010

Я пытаюсь построить две модели из одной формы, используя метод fields_for. Мой код выглядит так:

<% for scale in @event.scales %>
  <% f.fields_for "scale[]", scale do |scale_form| %>
    <p>
      Scale<br />
      <%= scale_form.label :name %>
      <%= scale_form.text_field :name %>
      <%= scale_form.label :price %>
      <%= scale_form.text_field :price %>
    </p>
  <% end %>
<% end %>

но, к сожалению, в выходном html отсутствуют идентификаторы весов:

<p>
  Scale<br />
  <label for="event_scale__name">Name</label>
  <input id="event_scale__name" name="event[scale][][name]" size="30" type="text" />
  <label for="event_scale__price">Price</label>
  <input id="event_scale__price" name="event[scale][][price]" size="30" type="text" />
</p>

...

Вот соответствующий контроллер и модель:

class EventsController < ApplicationController
  ...

  def new
    @event = Event.new
    @providers = Provider.find(:all, :order => :name)
    3.times { @event.scales.build }
    respond_to do |format|
      format.html
    end
  end

  ...
end


class Event < ActiveRecord::Base
  has_many :scales

  ...
end

что я делаю не так?

1 Ответ

3 голосов
/ 12 марта 2010

Fields_for не является методом для объекта вмещающей формы, поэтому измените f.fields_for на просто fields_for.

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