0

我有一个列出锁集合的下拉菜单。我想在选择一个选项时设置两个参数:

  1. :name => l.name (与下面的代码一起使用)
  2. :device_id => l.id

    <%= f.select(:name, Lock.all.collect {|l| [ l.name ] } ,{:include_blank => true} ) %>

我尝试在 hidden_​​field 中传递值,但该字段不知道选择的锁。非常感谢任何输入。

4

2 回答 2

0

那么您需要在控制器端获取两个值吗?

前任:-

我的数据库中有以下值

ID Name
4  gggg
5  tttt
2  iiii

因此,如果您从服务器的下拉列表中选择 tttt,则下拉列表将显示所有名称 gggg、tttt、iiii,您需要 5、tttt对吗?

然后你需要使用下面的代码

在控制器中

@locks = Lock.all.map{|l| [l.name, "#{l.id};#{l.name}"]}

在你看来

<%= select_tag(:name, options_from_collection_for_select(@locks) )%>

所以它将发送由“;”分隔的 id 和 name 值 .

在您的控制器中,您需要用“;”分割

于 2013-05-07T06:02:36.010 回答
0

您好,您可以这样做:

  <%= 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 中获取选定的名称。

希望能帮助到你。

于 2013-05-07T04:43:50.140 回答