我有一个下拉菜单,列出了一组锁。我想设置两个参数当选择一个选项:设置多个属性选择表单导轨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值“; “ 。
在您的控制器中,您需要按“;”分割。