2013-05-06 37 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> 
相關問題