2016-03-08 183 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>