Как установить флажки для ассоциации has_many :through с помощью построителя форм?

Хотите установить флажки для has_many :through. Railscast в 2007 году рекомендует это: check_box_tag "product[category_ids][]", category.id, @product.categories.include?(category). Это все еще актуально или есть более естественный способ использовать form_for для этого в rails 3?


person pixelearth    schedule 18.03.2011    source источник


Ответы (1)


Я рекомендую проверить жемчужину Formtastic Джастина Френча: https://github.com/justinfrench/formtastic

Это делает работу с формами в рельсах очень простой и интуитивно понятной.

Ваша форма может выглядеть так:

<%= semantic_form_for @product do |f| %>
  <%= f.inputs do |f| %>
    <%= f.input :name %>
    <%= f.input :categories, :as => :check_boxes, :collection => Categories.all %>
  <% end %>
  <%= f.buttons %>
<% end %>

Гораздо проще, чем зацикливаться и использовать тег флажка.

Как только вы станете формирующими, вы никогда не вернетесь назад.

person Alan Peabody    schedule 18.03.2011