之前被问过类似的事。
Rails 3 has_many :through Form
但是无法从用户表单中获得与就业关系的关系。
已阅读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 %>
答案 0 :(得分:15)
在表单中包含隐藏字段标记,以确保在未选中任何复选框时提交某些内容。这应该在&lt;%end%&gt;:
之后起作用<%= hidden_field_tag "user[company_ids][]" %>
答案 1 :(得分:10)
我可能错了,但我认为check_box_tag函数的第一个arg是输入的实际名称,所以不是
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)
让我知道它是否有效!