0

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) %>

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

干杯!

4

2 回答 2

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

在选择列表中选择多个选项时,只需给出 article_ids[] ,它会将所有 id 存储在此数组中,然后在您编写查询后如何存储在数据库中。
如果将选择标签设置为多个 true,那么您将选择多个选项,否则您只会获得一个选定的值。
或者
只是阅读下面的链接
http://api.rubyonrails.org/?q=collection%20select

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

<%= f.collection_select :article_id, Article.all, :id , :name %>
于 2012-12-12T05:27:15.067 回答
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 %>
于 2012-12-14T00:08:20.917 回答