Как просмотреть список флажков HABTM внутри вложенной модели - PullRequest
1 голос
/ 30 июля 2010

У меня проблема с просмотром списка флажков категории, когда я пытаюсь вложить их в форму fields_for.

У меня есть модель «product», которая «has_many» «photos», которая «has_and_belongs_to_many» «category».Я почти уверен, что все мои ассоциации в моих моделях правильные, так же как и моя таблица соединений для отношений «фотографии» и «категории».

Вложение только «фото» в «продукт» мне подходит:

<%= form_for(@product) do |f| %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>

  <div class="field">
    <% f.fields_for :photos do |builder| %>
            <%= builder.label :name, "Photo name" %>
            <%= builder.text_field :name %>
      <% end %>
  </div>

  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Но я не могу добавить модель категории с флажками.Вот что не работает:

    <%= form_for(@product) do |f| %>

      <div class="field">
        <%= f.label :name %><br />
        <%= f.text_field :name %>
      </div>

      <div class="field">
        <% f.fields_for :photos do |builder| %>
                <%= builder.label :name, "Photo name" %>
                <%= builder.text_field :name %>

                <div class="field">
                   Categories:
                   <% for category in Category.find(:all )%>
                      <%= check_box_tag "photo[category_ids][]", category.id, @photo.categories.include?(category) %>
                      <%= category.name %>
                   <% end %>
                </div>

          <% end %>
      </div>

      <div class="actions">
        <%= f.submit %>
      </div>
    <% end %>

check_box_tag и отсутствие помощника по форме при циклическом просмотре списка категорий приводят меня в замешательство.Может кто-нибудь, пожалуйста, помогите?Спасибо.

ОБНОВЛЕНИЕ: я могу заставить его работать с этим блоком выбора, но я пытаюсь заставить его работать с флажками:

<%= f.collection_select :category_ids, Category.find(:all, :order => 'name'), :id, :name, {}, :multiple => true %>

1 Ответ

0 голосов
/ 31 июля 2010

Вы зарегистрировались в accepts_nested_attributes_for

Вот пример того, как заставить HABTM работать с accepts_nested_attributes_for

http://patshaughnessy.net/2010/4/4/creating-associations-to-existing-data-part-3-has_many-through-scaffolding

...