2017-09-07 48 views
0

我想在form_for中創建一個select標籤,我可以從選項中選擇多個類別。我看過Rails documentation和這個SO,但他們都沒有工作。到目前爲止,我有這樣的:如何在form_for中創建選擇標籤Rails

<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的評論暗示,以取代select標籤用Rails的形式助手以及保持您的自定義HTML數據屬性:

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

有關collection_select選項的詳細信息,請查看在Rails api

+0

所以我把'<%= f.collection_select(:category_ids,Category.all,:id,:name, class:「selectpicker」,data-style:「form-control」,multiple:true,title:「Choose Department(s)」,data-size:「5」)%>'它會拋出一個錯誤。我認爲這是因爲數據風格和數據大小的連字符。任何想法如何使這可以被認爲是我想改變的選擇標籤的屬性? –

+0

更新了我的答案。您可以使用'data:{size:5,style:'form-control'}'來傳遞自定義HTML屬性(例如HTML5'data-')。 – mmichael

+0

我結束了使用'%= f.collection_select(:category_ids,Category.all,:id,:name,{:「data-style」=>「form-control」,multiple:true,:「data-size 「=>」5「},{class:」selectpicker「,標題:」選擇部門「})%>'。現在唯一的問題是「多個」不起作用。 –

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指出的那樣。