collection_select的多个值

Hom*_*ith 7 forms ruby-on-rails

我想在我的表单中使用以下HTML代码:

 <select name="user[language_ids][]">
    <option value="">Please select</option>
    <option value="1" selected="selected">English</option>
    <option value="2">Spanish</option>
  </select>

  <select name="user[language_ids][]">
    <option value="">Please select</option>
    <option value="1" selected="selected">English</option>
    <option value="2">Spanish</option>
  </select>
Run Code Online (Sandbox Code Playgroud)

允许用户在注册时选择两种语言.

我试过这个:

<%= f.label :languages %>
<%= f.collection_select(:language_ids, Language.all, :id, :name) %>
<%= f.collection_select(:language_ids, Language.all, :id, :name) %>
Run Code Online (Sandbox Code Playgroud)

还有这个:

<%= f.label :languages %>
<%= f.collection_select(:language_ids[], Language.all, :id, :name) %>
<%= f.collection_select(:language_ids[], Language.all, :id, :name) %>
Run Code Online (Sandbox Code Playgroud)

在回顾了答案之后,我尝试了这个:

<%= collection_select(:user, :language_ids, Language.all, :id, :name, {}, {:name => 'user[language_ids][]' }) %>
    <%= collection_select(:user, :language_ids, Language.all, :id, :name, {}, {:name => 'user[language_ids][]' }) %>
Run Code Online (Sandbox Code Playgroud)

但是这里的问题是两个选择都具有相同的ID,并且它们与表单构建器没有关联 f

有关最佳方法的任何想法吗?

shw*_*eta 8

尝试,

<%= f.collection_select(:language_ids, Language.all, :id, :name,{}, {:multiple => true}) %>
Run Code Online (Sandbox Code Playgroud)

  • 不是这个问题的正确答案,但对我来说是正确的答案,所以谢谢! (2认同)