2016-03-08 167 views
0

我有一個紅寶石窗體,其中包含start_date文本框和一個結束日期文本框。我需要添加狀態下拉菜單。我添加了select_tag並且它填充正確。我的問題是如何獲得所選的價值?從select_tag返回值作爲參數

段從形式:

<div class="modal-body"> 
    <div class="control-group"> 
     <label class="control-label">From</label> 
     <div class="controls"> 
     <%= text_field_tag "purchase_requests_from_time", Date.today.beginning_of_month, :class => "text date_picker report_start_time_picker" %> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label">To</label> 
     <div class="controls"> 
     <%= text_field_tag "purchase_requests_to_time", Date.today.end_of_month, :class => "text date_picker report_start_time_picker" %> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label">Status</label> 
     <div class="controls"> 
     <%= select_tag :status, options_for_select(get_purchase_request_statuses) %> 
     </div> 
    </div> 
    <div class="control-group"> 
     <label class="control-label">Status2</label> 
     <div class="controls"> 
     <%= select_tag "status2", options_for_select(get_purchase_request_statuses) %> 
     </div> 
    </div> 
    </div> 

然後,當我試圖訪問控制器中的PARAMS

from_time = params[:purchase_requests_from_time] 
to_time = params[:purchase_requests_to_time] 
status = params[:status] 
status2 = params[:status2] 

的時間參數顯示正常,狀態和狀態2參數丟失。

params = {ActiveSupport::HashWithIndifferentAccess} ActiveSupport::HashWithIndifferentAccess (4 elements) 
'purchase_requests_from_time' = "Tue Mar 01, 2016" 
'purchase_requests_to_time' = "Thu Mar 31, 2016" 
'action' = "export" 
'controller' = "purchase_requests" 

任何想法我做錯了什麼?

+0

get_purchase_request_statuses是否返回字符串數組?如果沒有,請確保該函數的輸出是一個數組。 另外,你確定你沒有過濾控制器中的參數,並在它們到達你正在檢查它們的地方之前使用'params.require()。permit()'語句嗎?如果是,請確保:status和:status2是permit方法的參數。 –

+0

感謝您的快速響應。 1)get_purchase_request_statuses返回一個數組,並正確填充下拉列表。 2)我的代碼中沒有任何params.require語句。我是不是該? – podzach

回答

0

我發現我的問題。我錯過了form_tag,並且使用了link_to而不是submit_tag。這是工作的代碼

<div class="modal hide" id="download_purchase_requests"> 
    <div class="modal-header"> 
    <button type="button" class="close" data-dismiss="modal">×</button> 
    <h3>Download Purchase Requests</h3> 
    </div> 
    <%= form_tag({:action => :export, :controller => :purchase_requests}, :multipart => true) do %> 
    <div class="modal-body"> 
    <div class="control-group"> 
     <label class="control-label">From</label> 
     <div class="controls"> 
     <%= text_field_tag "purchase_requests_from_time", Date.today.beginning_of_month, :class => "text date_picker report_start_time_picker" %> 
     </div> 
    </div> 

    <div class="control-group"> 
     <label class="control-label">To</label> 
     <div class="controls"> 
     <%= text_field_tag "purchase_requests_to_time", Date.today.end_of_month, :class => "text date_picker report_start_time_picker" %> 
     </div> 
    </div> 

    <div class="control-group"> 
     <label class="control-label">Status</label> 
     <div class="controls"> 
     <%= select_tag :purchase_request_status, options_for_select(get_purchase_request_statuses, :selected => params[:purchase_request_status]) %> 
     </div> 
    </div> 
    </div> 
    <div class="modal-footer"> 
    <a href="#" class="btn" data-dismiss="modal">Close</a> 
    <%= submit_tag "Download", :class => "btn", :id => "download-btn", :onsubmit => "$('#download-btn').attr('disabled', 'disabled');" %> 
    </div> 
    <% end %> 
</div>