0

フォームにcollection_selectインスタンスがありますが、同じフォームに2つ以上のインスタンスを含めることができるかどうか疑問に思っています。それらは同じモデルから構築され、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がこの配列に格納され、クエリを記述した後、データベースに格納する方法が示されます。selectタグが複数trueに設定されている
場合は、複数のオプションを選択します。そうでない場合は、選択された値が1つだけになります。 または、以下のリンクをお読みください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 に答える