Rails:如何使用具有HABTM关系的多个选择标记设置表单

时间:2010-12-10 04:51:43

标签: ruby-on-rails database has-and-belongs-to-many

我有bandsgenresbands_genres数据库表与HABTM关系

我有一个用于创建新乐队的表单,我希望用户能够从3个不同的下拉选择菜单中选择3种类型。

如何设置我的表单(以及我的create方法),以便当用户选择这3种类型时,它会正确地将关系添加到我的bands_genres表中?

我正在运行Rails 3.0.3。

2 个答案:

答案 0 :(得分:8)

您可以通过1选择来简化您的代码,这可以让您选择多个选项,

<%= collection_select(:band, :genre_ids, Genre.all, :id, :name,{:include_blank => 'None'},
{:multiple => true, :name=>'band[genre_ids][]',:selected => 0}) %>

:selected =&gt; 0,将默认选择设置为无

GL

答案 1 :(得分:2)

你好,表格必须类似于HABTM通过复选框

<%form_for @band do |f|%>
  ...
  <%= select_tag "band[genree_ids][]", options_from_collection_for_select(@first_genrees, "name", "id")%>
  <%= select_tag "band[genree_ids][]", options_from_collection_for_select(@second_genrees, "name", "id")%>
  <%= select_tag "band[genree_ids][]", options_from_collection_for_select(@third_genrees, "name", "id")%>
<%end%>

表单提交关系应该改变