检查复选框是否已选中rails

我试图从头开始创建我的第一个rails应用程序,但我认为我毕竟不应该使用rails。 我有一个使用方法make_calls的按钮,在make调用中,我让它由sleep语句分隔出一堆不同的调用,但是我需要这些只在checksecheck复选框被选中时执行。 这是我有的:
在我的控制器中:

# called from inside make_calls method def individual_call(to_phone, xml_url) call = @client.calls.create( url: xml_url, to: to_phone, from: '+13474275841', timeout: 20 ) if params[:calls_check] == '1' puts call.sid end 

在我看来:

  
Make Calls

但即使未选中该复选框,它仍然会进行调用。 任何建议?

您应该使用check_box_tag而不是check_box

原因是check_box接受第二个参数作为方法( 这意味着该方法返回一个整数,如果该整数大于零,则选中该复选框

使用check_box_tag

 <%= check_box_tag :calls_check, 1, false %> 

这意味着一旦选中复选框,它将发送参数为'1' ,默认情况下将unchecked ,如果未选中,则不会发送calls_check参数(即params[:calls_check] = nil

在控制器方面

 # called from inside make_calls method def individual_call(to_phone, xml_url) call = @client.calls.create( url: xml_url, to: to_phone, from: '+13474275841', timeout: 20 ) if params[:calls_check].eql?('1') puts call.sid end 

用表单包装check_box,以便在点击按钮时发送数据,

make_calls_path替换为make_call操作路径,并将其method替换为getpost 。 根据您定义的路线

  
<%=form_tag make_calls_path, method: :get do %> <%= check_box_tag :calls_check, id: "calls_check" %>Make Calls <%= submit_tag "Start Call Sequence"%> <%end%>