Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在rails中按复选框过滤_Ruby On Rails_Ruby On Rails 4_Checkbox - Fatal编程技术网

Ruby on rails 在rails中按复选框过滤

Ruby on rails 在rails中按复选框过滤,ruby-on-rails,ruby-on-rails-4,checkbox,Ruby On Rails,Ruby On Rails 4,Checkbox,我的rails应用程序“按复选框搜索”中有一个问题 这是我的复选框代码: <form action="<%= search_path %>" method="get"> <%= check_box_tag :title, params[:title] %> Title <input type="submit" value="Fielter" /> </form> 如何搜索标题,如ABC&删除默认的=on 我需要这样: http

我的rails应用程序“按复选框搜索”中有一个问题

这是我的复选框代码:

<form action="<%= search_path %>" method="get">
  <%= check_box_tag :title, params[:title] %> Title
  <input type="submit" value="Fielter" />
</form>
如何搜索标题,如
ABC
&删除默认的
=on

我需要这样:

http://localhost:3000/search?title=ABC
谢谢

复选框标记(name,value=“1”,checked=false,options={})

我相信默认值来自
复选框标签中的
参数[:title]

因为当您使用
时,将使用HTML等效项

<input id="title" name="title" type="checkbox" value="on" /> #assumning the value of params[:title] is on
假设参数[:title]的值为on
因此,复选框的值总是在上

试着把它改成

<%= check_box_tag :title %> Title
标题
复选框标记(name,value=“1”,checked=false,options={})

我相信默认值来自
复选框标签中的
参数[:title]

因为当您使用
时,将使用HTML等效项

<input id="title" name="title" type="checkbox" value="on" /> #assumning the value of params[:title] is on
假设参数[:title]的值为on
因此,复选框的值总是在上

试着把它改成

<%= check_box_tag :title %> Title
标题

如果没有javascript,特定的url模式可能很难实现,但通过处理服务器端的逻辑,您可以相当轻松地获得所需的结果(仅当选中复选框时才搜索标题)

只需修改表单,使其标题始终作为隐藏字段(因此在提交时它始终作为参数传递)以及复选框,复选框将作为参数传递为1或0(true或false),具体取决于是否选中该复选框。然后,处理搜索路径中的逻辑:如果checkbox参数为true,则根据title参数进行搜索。如果复选框为false,则不要使用title参数

<form action="<%= search_path %>" method="get">
  <%= hidden_field_tag "title", :title %>
  <%= check_box_tag :use_title %> Title
  <input type="submit" value="Fielter" />
</form>
在控制器动作中:

if params[:use_title]
  do_something      # Use params[:title] in your search
else
  do_something_else # Don't use params[:title] in your search
end

这会给你想要的行为

如果没有javascript,特定的url模式可能很难实现,但是通过处理逻辑服务器端,您可以相当轻松地获得所需的结果(仅当选中复选框时才搜索标题)

只需修改表单,使其标题始终作为隐藏字段(因此在提交时它始终作为参数传递)以及复选框,复选框将作为参数传递为1或0(true或false),具体取决于是否选中该复选框。然后,处理搜索路径中的逻辑:如果checkbox参数为true,则根据title参数进行搜索。如果复选框为false,则不要使用title参数

<form action="<%= search_path %>" method="get">
  <%= hidden_field_tag "title", :title %>
  <%= check_box_tag :use_title %> Title
  <input type="submit" value="Fielter" />
</form>
在控制器动作中:

if params[:use_title]
  do_something      # Use params[:title] in your search
else
  do_something_else # Don't use params[:title] in your search
end

这会给你想要的行为

default
值的来源?尝试将其更改为
Title
default
值的来源?尝试将其更改为
Title
谢谢@pavan,解决问题,但现在创建一个问题,显示单个复选框结果,我需要显示多个复选框选中的结果,这怎么可能?谢谢@pavan,解决了问题,但现在创建一个问题,显示单个复选框结果,我需要显示多个复选框结果,这怎么可能?