rails 3 has_many: через форму с флажками - PullRequest
9 голосов
/ 20 февраля 2011

Спросил подобное ранее.

Rails 3 has_many: через форму

Но не удается получить отношения с трудоустройством, которые будут созданы из формы пользователей.

Прочитал http://www.justinball.com/2008/07/03/checkbox-list-in-ruby-on-rails-using-habtm/ и http://millarian.com/programming/ruby-on-rails/quick-tip-has_many-through-checkboxes/ (на что я действительно надеялся, что это сработало.)

Форма отправляется, но создает только пустую запись при приеме на работу.

<%= form_for @user do |f| %>
...
<p>
   <% Company.all.each do |company| %>
        <%= check_box_tag :company_ids, company.id, @user.companies.include?(company), :name => 'user[company_ids][]' -%>
     <%= label_tag :companies_ids, company.id %>
   <% end %>
</p>
<p><%= f.submit %></p>
<% end %>

Ответы [ 2 ]

15 голосов
/ 07 июня 2011

Включите скрытый тег поля в форму, чтобы убедиться, что что-то отправлено, когда ни один из флажков не установлен.Это должно работать после <% end%>:

<%= hidden_field_tag "user[company_ids][]" %>
10 голосов
/ 20 февраля 2011

Я могу ошибаться, но я думаю, что первый аргумент функции check_box_tag - это фактическое имя ввода, поэтому вместо

check_box_tag :company_ids, company.id, @user.companies.include?(company), :name => 'user[company_ids]'

Вы можете попробовать что-то вроде

check_box_tag 'user[company_ids]', company.id, @user.company_ids.include?(company.id)

Дайте мне знать, если это работает!

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