检查复选框是否已选中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
在我看来:
但即使未选中该复选框,它仍然会进行调用。 任何建议?
您应该使用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
替换为get
或post
。 根据您定义的路线