2017-09-07 8 views
0

オプションから複数のカテゴリを選択できるform_forにselectタグを作成しようとしています。私はRails documentationとこのSOを見ましたが、どちらもうまくいかないようです。form_for Railsでselectタグを作成するには

<select class="selectpicker" data-style="form-control" multiple title="Choose Department(s)" data-size="5"> 
    <%= options_from_collection_for_select(Category.all, :id, :name)%> 
</select> 

をそして、私のform_forは、次のようになります:これまでのところ、私はこれを持って

<%= form_for(@listing, :html => {class: "form-horizontal" , role: "form"}) do |f| %> 

私のリストは多くのカテゴリを持つことができます。これを自分のフォームに保存するにはどうすればいいですか?現在、私のフォームを提出すると、カテゴリは保存されません。

+0

だから、複数のアイテムを選択する際に問題がありますか? – Mohanraj

+0

いいえ、選択タグが正しく機能しています。複数のカテゴリを選択できますが、フォームを送信するとデータベースに保存されません。 –

+0

フィールド名は何ですか?ルビコードとパラメタもいくつか投稿してください。 – Mohanraj

答えて

1

あなたの選択が@listingオブジェクトにスコープされていないため、機能しません。試してみてください:

<%= f.collection_select(:category_id, Category.all, :id, :name) %> 

をddubsさんのコメントRailsのフォームヘルパーとselectタグを置き換えることを示唆しているだけでなく、あなたのカスタムHTMLデータの属性を維持する@対処するために:collection_selectオプションの詳細については

<%= f.collection_select(:category_ids, Category.all, :id, :name, {}, class: "selectpicker", title: "Choose Department(s)", multiple: true, data: { style: "form-control", size: "5" }) %> 

、見てRails apiで。

+0

これで '<%= f.collection_select(:category_ids、Category.all、:id、:name、 data-style: "form-control"、multiple:true、title: "Departmentを選択"、data-size: "5")%> 'それはエラーを投げています。私はこれがデータスタイルとデータサイズのハイフンのためだと思う。これをどのようにして私が変更したいselectタグの属性として認識させることができるか、どのような考えですか? –

+0

私の答えが更新されました。 'data:{size:5、style: 'form-control'}'などのカスタムHTML属性(HTML5 'data-'など)を渡すことができます。 – mmichael

+0

私は<%= f.collection_select(:category_ids、Category.all、:id、:name、{: "データスタイル" => "フォームコントロール"、複数:真、 "データサイズ"=>" 5 "}、{class:" selectpicker "、title:"部署を選択 "})%>'今では唯一の問題は「複数」が機能していないことです。 –

0

最終回答が<%= f.collection_select(:category_ids, Category.all, :id, :name,{:"data-style" => "form-control", :"data-size" => "5"}, {class: "selectpicker", title: "Choose Department(s)", multiple: true}) %>となってしまったとmmichaelが指摘しています。

関連する問題