我正在尝试从头开始创建我的第一个Rails应用程序,但我认为我不应该为此使用Rails。我有一个使用方法make_calls的按钮,在make调用中,我进行了一系列不同的调用,这些调用由sleep语句分隔开,但是我仅在calls_check复选框被选中时才需要执行这些按钮。这是我所拥有的:
在我的控制器中:
# 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
在我看来:
<body>
<div class="buttonDiv w3-display-middle">
<%= check_box :calls_check, id: "calls_check" %>Make Calls
<%= button_to "Start Call Sequence", action: "make_calls" %>
</div>
</body>
但是,即使未选中该复选框,它仍会进行呼叫。有什么建议吗?
答案 0 :(得分:0)
您应该使用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
用表格包装复选框,以便在单击按钮时发送数据,
用make_call操作路径及其make_calls_path
method
或get
替换post
。根据您定义的路线
<body>
<div class="buttonDiv w3-display-middle">
<%=form_tag make_calls_path, method: :get do %>
<%= check_box_tag :calls_check, id: "calls_check" %>Make Calls
<%= submit_tag "Start Call Sequence"%>
<%end%>
</div>
</body>