2010-11-22 53 views
1

我目前有一個表單將2個參數傳遞給我的控制器。我的問題是每次我在select_tag表單中做出選擇時,我希望我的選項在我點擊提交標記後留下。這樣用戶就知道他或她剛剛選擇了什麼。我可以使用:selected =>「true」,但那隻適用於默認值,不適用於提交的值。Ruby在select_tag中保存所選擇的選項

<form name="filter" action="" style="display:inline" > 
    <label for="filter">Filter by Name or Description: </label> 
    <%= text_field_tag "query", params['query'] %> 
    <label for="status">Filter by Status:</label> 
    <%= select_tag(:sortstatus, 
        '<option value="empty">Show All</option>, 
        <option value="0">Applying</option>, 
        <option value="3">Suspended</option>, 
        <option value="4">Pending</option>') %> 
    <%= submit_tag 'Search' %> 
</form> 

這裏是會改變的空值與我臺工作

def sort_status 
    if params[:sortstatus] == "empty" 
      @statusorder = "" 
    else @statusorder = params[:sortstatus] 
    end 
    end 

一直沒能找到任何解決方案,谷歌到目前爲止控制器。

回答

2

看看使用options_for_select來生成您的options標籤。它允許您指定您想要選擇哪個條目。例如

<%= select_tag(:sortstatus, options_for_select([['Show All', 'empty'], 
    ['Applying', '0'], 
    ['Suspended', '3'], 
    ['Pending', '4']], params[:sortstatus]) %> 

這將所選擇的項目設置爲params[:sortstatus]

+0

電流值我想你的建議,但實際情況是紅寶石將節省給予價值的價值,而不是名字。確實非常奇怪。那之後,我讓Controller改變了我的價值。 <%= select_tag('sortstatus',options_for_select([「Show All」,「Ready」,「Applying」,「Suspended」,「Pending」],params [:sortstatus]))%> – TheRealVayne 2010-11-24 02:58:48

相關問題