2017-02-15 57 views
1

我是rails和web的新手。我使用'bootstrap-multiselect-rails'創建一個選擇框和正常輸入。
enter image description here
當我點擊提交按鈕時,我沒有檢索params變量中的選擇框信息(輸入很好地檢索)。如何在bootstrap-multiselect-rails的控制器中獲得價值

enter image description here 這可能是由於bootstrap-multiselect gem通過用ul,li系統替換它來覆蓋選擇框的行爲。

%select#select-type{:multiple => "multiple"} - @list_of_type.each do |type| %option{value: "#{type.label}"} #{type.label.upcase_first}

enter image description here

我已經看到了答案,在檢索在JavaScript,但如何將其在控制信息進行處理的信息解釋?

回答

0

在您選擇的字段中,我看不到您爲其分配了參數。通常選擇如下所示:<%= select :input, etc...其中:輸入是要保存到模型中的參數。 Rails的文檔給下面的例子:

select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, { include_blank: true }) 

所以問題是,你沒有指定帕拉姆。它也不是空的,它在你的參數中沒有被提及。正確?!請再次查看基本文檔,瞭解如何創建選擇字段並根據請求添加參數。不幸的是,我不知道使用你的寶石的確切語法。 我也不確定:multiples =>「multiple」。或者它應該是多個:是真的?但我認爲你的版本可能適用於寶石。但是,您的haml只會使用#id和multiple:true創建HTML選擇。但是你想要的是這樣的

<select name="post[category]" id="post_category"> 

這樣param在select中就清楚了。

之後,當您保存了參數時,您也可以在控制器操作中使用它。總結:將參數添加到您選擇的字段。我不知道如何用寶石做到這一點,但你可能會發現一些文檔,或者檢查基本的rails文檔,這些文檔可以幫助你確定。另外所以用軌道選擇有很多問題。祝你好運!

+0

你對! 我受到了寶石做選擇的例子的啓發,所以我沒有注意其他參數。我走錯了路。 我補充一點,我們必須注意參數的順序 Select(object,method,choices = nil,options = {},html_options = {},&block) – Morgan

+0

太棒了!這些事情發生... –

0

你可以顯示多表單的rails代碼嗎?如果您已允許控制器中的參數併爲其設置列,您只需向每個將通過導軌存儲的選擇選項添加一個值。

如果有關如何將值添加到select_tag的問題,請查看rails文檔。在你的html標記中,我看不到這些選項是否有價值。

+0

我編輯帖子添加代碼。 我忘了說,這種形式旨在刷新下面的文章列表,我認爲有一個與Ajax的關係...什麼是恢復所有這些參數(輸入和選擇框)以便在查詢中使用它們的方法會更新列表? – Morgan