Rails:同一collection_select的两个(或更多)实例?

时间:2012-12-12 01:15:21

标签: ruby-on-rails-3

我在表单中有一个collection_select实例,我想知道是否有可能在同一个表单中有两个或更多个实例。它们是从同一个模型构建的,它们会像在Article.all.each循环中构造的复选框一样保存。让这些工作

<%= f.collection_select("article_ids", Article.where(:page => 1), :id, :name) %>
<%= f.collection_select("article_ids", Article.where(:page => 2), :id, :name) %>
<%= f.collection_select("article_ids", Article.where(:page => 3), :id, :name) %>
表格中的

几乎就是我所追求的。它本质上是一个多重选择,但分布在几个选择上。该字段已经接受了多个结果,但是当我保存表单时,它只记录最终选择的选项。有什么想法吗?

干杯!

2 个答案:

答案 0 :(得分:1)

<%= select_tag "article_ids[]",options_from_collection_for_select(Article.all.collect{|i| [i.name,i.id]),:multiple => true %> 

当选择列表中的多个选项时,只需给出article_ids [],它会在您编写查询后如何在数据库中存储所有ID。
如果设置选择标记为多个,则您将选择多个选项其他明智的您只获得一个选定值。
或者只是阅读以下链接
http://api.rubyonrails.org/?q=collection%20select

如果你想给f.select那么你必须这样给出

<%= f.collection_select :article_id, Article.all, :id , :name %>

答案 1 :(得分:0)

我只是选择了复选框来解决这个问题,因为这真的是噩梦。

<% @articles.each do |a| %>
  <%= check_box_tag("doc[article_ids][]", a.id, @doc.articles.include?(a.id), :class => "article_chooser") %> <a id="<%= a.id %>" class="name"><%= a.name %></a><br />
<% end %>