我有一個下拉菜單,列出了一組鎖。我想設置兩個參數當選擇一個選項:設置多個屬性選擇表單導軌3
- :名稱=> l.name(其與下面的代碼作品)
:DEVICE_ID => l.id
<%= f.select(:name, Lock.all.collect {|l| [ l.name ] } ,{:include_blank => true}) %>
我試過在隱藏字段中傳遞值,但字段不知道被選中的鎖。任何輸入都非常感謝。
我有一個下拉菜單,列出了一組鎖。我想設置兩個參數當選擇一個選項:設置多個屬性選擇表單導軌3
:DEVICE_ID => l.id
<%= f.select(:name, Lock.all.collect {|l| [ l.name ] } ,{:include_blank => true}) %>
我試過在隱藏字段中傳遞值,但字段不知道被選中的鎖。任何輸入都非常感謝。
嗨,你可以這樣做:
<%= select_tag(:name, options_from_collection_for_select(Lock.all, :id, :name, params[:name]))%>
或在您的控制器添加以下代碼:
@locks = Lock.find(:all)
和你的意見
<%= select_tag(:name, options_from_collection_for_select(@locks, :id, :name, params[:name]))%>
當您提交包含此select_tag的表單時,params [:name]將從您的應用的url中獲取所選名稱。
希望它有幫助。
所以你需要在控制器端獲得兩個值?
例如: -
我有以下值在我的分貝
ID Name
4 gggg
5 tttt
2 iiii
那麼下拉菜單會顯示在所有名稱GGGG,TTTT,IIII如果從下拉列表中的服務器選擇TTTT你同時需要5, tttt 對不對?
然後,你需要使用下面的代碼
在控制器
@locks = Lock.all.map{|l| [l.name, "#{l.id};#{l.name}"]}
在你看來
<%= select_tag(:name, options_from_collection_for_select(@locks))%>
所以它會發送由saparated兩個id和name值「; 「 。
在您的控制器中,您需要按「;」分割。