Ransack 不会过滤我的表格
Ransack doesn't filter my tables
我 运行 遇到了一些问题。我看了 Railscasts 370
并发现了一个很酷的新 gem 叫做 ransack
我的问题是它没有做我想做的事情,即根据搜索
过滤table
这是我的控制器
def index
@search = Component.ransack(params[:q])
@components = @search.result
end
还有我的看法
<%= search_form_for @search do |f| %>
<%= f.label :name_cont %>
<%= f.search_field :name_cont %>
<%= f.submit "Search" %>
<% end %>
当我输入 "Gigabyte" 并单击搜索时,我在 URL
中看到了以下内容
http://localhost:3000/components?utf8=%E2%9C%93&q%5Bname_cont%5D=Gigabyte&commit=Search
我知道这是查询的 URL 语法。它也会刷新页面。问题是,我看到以下三个结果
Intel Core i5-4460 3.2GHz Quad-Core
Gigabyte GA-Z97X-SLI ATX LGA1150
Team Elite Plus 8GB (2 x 4GB) DDR3-1600 Memory
这些是我 table 中 3 个项目的名称。我希望此查询只有一个结果 return。
如果有帮助,我已经添加了部分开发日志
Processing by ComponentsController#index as HTML
Paramaters: {"utf8=>"checkmark", "q" => {"name_cont"=>"Gigabyte"}, "commit"=>"Search"
它也出现在参数中,所以我完全不明白为什么我的代码不起作用。任何帮助将不胜感激。
编辑
我想我发现了问题,但我不确定
我里面有这个<tbody>
<tbody>
<% Component.all.each do |c| %>
<tr>
<td> <strong><%= c.part %></strong> </td>
<td> <a id="links" href="<%=c.link%>"> <%= c.name %> </a></td>
<td> $<%= c.price %> </td>
</tr>
<% end %>
</tbody>
编辑
看来确实是我的失误。将 Component.all
更改为 @components.each
修复了它。
你试过改变这个吗
@search = Component.ransack(params[:q])
为此?:
@search = Component.search(params[:q])
我最近一直在使用 gem,gem 可能在 railscast
方面发生了一些变化
我 运行 遇到了一些问题。我看了 Railscasts 370
并发现了一个很酷的新 gem 叫做 ransack
我的问题是它没有做我想做的事情,即根据搜索
过滤table这是我的控制器
def index
@search = Component.ransack(params[:q])
@components = @search.result
end
还有我的看法
<%= search_form_for @search do |f| %>
<%= f.label :name_cont %>
<%= f.search_field :name_cont %>
<%= f.submit "Search" %>
<% end %>
当我输入 "Gigabyte" 并单击搜索时,我在 URL
中看到了以下内容http://localhost:3000/components?utf8=%E2%9C%93&q%5Bname_cont%5D=Gigabyte&commit=Search
我知道这是查询的 URL 语法。它也会刷新页面。问题是,我看到以下三个结果
Intel Core i5-4460 3.2GHz Quad-Core
Gigabyte GA-Z97X-SLI ATX LGA1150
Team Elite Plus 8GB (2 x 4GB) DDR3-1600 Memory
这些是我 table 中 3 个项目的名称。我希望此查询只有一个结果 return。
如果有帮助,我已经添加了部分开发日志
Processing by ComponentsController#index as HTML
Paramaters: {"utf8=>"checkmark", "q" => {"name_cont"=>"Gigabyte"}, "commit"=>"Search"
它也出现在参数中,所以我完全不明白为什么我的代码不起作用。任何帮助将不胜感激。
编辑
我想我发现了问题,但我不确定
我里面有这个<tbody>
<tbody>
<% Component.all.each do |c| %>
<tr>
<td> <strong><%= c.part %></strong> </td>
<td> <a id="links" href="<%=c.link%>"> <%= c.name %> </a></td>
<td> $<%= c.price %> </td>
</tr>
<% end %>
</tbody>
编辑
看来确实是我的失误。将 Component.all
更改为 @components.each
修复了它。
你试过改变这个吗
@search = Component.ransack(params[:q])
为此?:
@search = Component.search(params[:q])
我最近一直在使用 gem,gem 可能在 railscast
方面发生了一些变化