0

我现在,这个问题可能不好,但需要帮助:在我的 rails haml 视图中,我有这样的代码:

%table.table.table-striped
  = form_tag :admin_other_price_upload do
    %tr    
      - @csv.first.length.times do |n|
        %th
          = n + 1
          %br/
          =select_tag "s"+(n+1).to_s, options_for_select([["Брэнд", "Brand"], ["Артикул","Article"], ["Наименование","Descr"], ["Цена","Price"], ["Количество","Quantity"], ["Дополнительно","Other"], ["Поле кроссов","Cross"]]), :prompt => 'Все', :id => "select-value"
*********************************

如您所见,我正在设置所有选择的名称,例如 s(n+1) 和列表中的值一。但是我怎样才能在控制器方法中同时获得它们呢?我需要它,因为我有动态表。我将举例说明:

所以我有选择的表

name = s1 (value = Brand) | name = s2 (value = Price)

所以我需要在控制器中不仅获得 s1 => Brand,还需要从 s1 获得这个 1 所以如果参数看起来像 [ s1 => {Brand} ] 我需要获得我的计算 s1 不是值,而是 s1 作为字符串(很简单,我需要在参数中找到哪个值具有品牌并将其选择为值)所以对于品牌,我需要选择 s1,并将 s1 值设置为 s1,我该怎么做?

4

1 回答 1

0

我可能理解你,但不确定。

# let's say your params hash is like:
params = { :action => 'show', :controller => 'articles', 
           :s1 => 'Article', :s2 => 'Brand', :s3 => 'Price', ... }

brand_param = params.select{ |key, value| value == 'Brand' }
# => { :s2 => 'Brand' }
which_s_is_brand = brand_param.keys.first.to_s
# => 's2'
于 2013-01-03T22:16:24.533 回答