0

現在、次のようなレールフォームに複数選択ボックスがあります。

= select_tag :in_all_tags, options_from_collection_for_select(Tag.where(:project_id => @project.id), :id, :name, @in_all_tags_param), { :id => "tags", :tabindex => "3", "data-placeholder" => "Choose Tags", :multiple => "multiple" }

どこ

@in_all_tags_param = params[:in_all_tags]

問題は、@in_all_tags_param選択フォームに からの最後の値のみが入力されることparams[:in_all_tags]です。そのため、url 文字列が の場合in_all_tags=5&in_all_tags=8、複数選択で事前に選択された値は 8 のみになります。

私が理解していることから、これを回避する方法は、複数のパラメーターのフィールド名に追加する[]ことです。:in_all_tagsin_all_tags[]

しかし、これを試してみると、フォームを送信すると次のように返されます。

Expected type :default in params[:in_all_tags], got Array

任意の提案をいただければ幸いです。

乾杯...

4

1 に答える 1

0

:name同じハッシュに要素を追加する必要があり:multiple => trueます。だから私は自分のアプリでジャンルに似たものを使用しています{ :multiple => true, :name => "lesson[genre_ids][]" }。名前は でなければなりませんmodel[attribute][]

于 2012-09-13T21:40:20.197 に答える