我想获取复选框值,以便将http请求的参数设置为静态API。我是Web开发的新手,我在Rails 5.1上遇到了ruby的麻烦
基本上,我有两种看法: -一个可以选中/取消选中两个复选框,然后按一个按钮进行一些API调用,然后将您发送到第二个视图。 -第二个只是用于显示API信息。
在第一个视图中,我成功执行了“发出” API调用的按钮,第二个中正确显示了API信息。现在,我很难将带有两个复选框的参数添加到请求中。我的复选框始终使我在params []中返回“ nil”。
我提到了rails文档的这一部分:https://guides.rubyonrails.org/form_helpers.html#helpers-for-generating-form-elements 以及其他一些stackoverflow问题,却不了解我错过了什么。
这是控制器代码:
class IndexController < ApplicationController
include HTTParty
def button_state
end
def display_state
require 'open-uri'
require 'json'
# this part is for checking my checkbox values, they are always nil
@t1 = params[:param_name1]
@t2 = params[:param_name2]
@url_test = 'www.bkbahbqiv.com/tamere?test1=' << @t1.to_s << '&test2=' << @t2.to_s
# other part related to the API calls
...
end
end
这是我的查看代码:
<h1>Check/Uncheck the boxes and click on the button to get results</h1>
<div class="checkbox">
<td>
<%= label_tag(:param_name1, "test1") %>
<%= check_box_tag(:param_name1) %>
</td>
</div>
<div class="checkbox">
<td>
<%= label_tag(:param_name2, "test2") %>
<%= check_box_tag(:param_name2) %>
</td>
</div>
<%= button_to "go to display_state", display_state_path, :method => :get %>
我要补充一点,就是我不想将复选框值存储在数据库中。
在此先感谢任何帮助我的人:)
答案 0 :(得分:0)
以下建议绝对适合您。请在下面更改您的视图,您需要使用表单标签来解决问题
<%= form_tag display_state_path, :method => 'get' do %>
<div class="checkbox">
<td>
<%= label_tag(:param_name1, "test1") %>
<%= check_box 'param_name1', 'result', {}, 1, 0 %>
</td>
</div>
<div class="checkbox">
<td>
<%= label_tag(:param_name2, "test2") %>
<%= check_box 'param_name2', 'result', {}, 1, 0 %>
</td>
</div>
<%= submit_tag "go to display_state" %>
<% end %>
您可以访问参数中的复选框值
params[:param_name1][:result]
params[:param_name2][:result]