2013-05-07 26 views
0

我有一個下拉菜單,列出了一組鎖。我想設置兩個參數當選擇一個選項:設置多個屬性選擇表單導軌3

  1. :名稱=> l.name(其與下面的代碼作品)
  2. :DEVICE_ID => l.id

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

我試過在隱藏字段中傳遞值,但字段不知道被選中的鎖。任何輸入都非常感謝。

回答

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中獲取所選名稱。

希望它有幫助。

0

所以你需要在控制器端獲得兩個值?

例如: -

我有以下值在我的分貝

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值「; 「 。

在您的控制器中,您需要按「;」分割。