2013-05-06 41 views
0

如果我看着rails服务器日志,@profile有它的值,它就像dropdown_cases"=>["basic"],但IF条件作为我的代码@profile == 'basic'以下在Rails控制器中不匹配,作为输出doing basic不显示,我不知道为什么。Rails控制器无法匹配数组值与字符串

以下是我的代码。

查看:

<%= form_tag :action => 'submit' do %> 

语料库类型:

<%= select_tag 'dropdown_cases[]', options_for_select([['Basic','basic'], ['Standard','standard'], ['Advanced','advanced']], 'basic') %></p> 

控制器:

def submit 
    @profile = params["dropdown_cases"] 
    puts @profile 
    if @profile == 'basic' 
     puts "doing basic" 
    end 
end 

回答

1

select_tag的名称删除那些方括号([])。

有了:

<%= select_tag 'dropdown_cases', options_for_select([['Basic','basic'], 
['Standard','standard'], ['Advanced','advanced']], 'basic') %> 

它应该很好地工作。

+0

完美地工作!非常感谢!!!! Pigueiras! – gugo 2013-05-06 07:04:05

0

你需要一降你的意见了下来...如果是的话再看看我的做法......在我的情况 地看问题采取在我的模型 一个布尔型状态,将定义一个常量状态

模型

STATUS = [['active', true], ['Inactive', false]] 

控制器

resources :user 

浏览

<div><%= f.label :status%> 
    <%= f.select :status, options_for_select(User::STATUS) %></div> 
相关问题