[英]Print pg_search params to Rails 5 template page
我有一个可以用pg_search
gem过滤的产品页面。 我想做的是创建一个面包屑,在页面上列出搜索参数。
如果我的搜索网址看起来像http://127.0.0.1:3000/products?utf8=%E2%9C%93&query=modern&query=stone&query=limestone&commit=Search
我想在页面上打印modern stone limestone
。
products_controller.rb
def index
@products = if params[:query]
@albums = Album.where(name: params[:query])
Product.search_for(params[:query])
else
@albums = Album.where(name: 'products')
Product.order(:name)
end
end
index.html.erb,这是我尝试过的,但是意识到它列出了所有标签,而我只需要搜索参数中包含的标签
<ul class="product-index-breadcrumb">
<% @products.each do |p| %>
<% p.tags.each do |t| %>
<li><%= t.name %></li>
<% end %>
<% end %>
</ul>
您需要修改您的URL,例如添加[]
数组字符串,如果保留此参数,则仅不包含[]
然后仅接受最后一个值,如limestone
,修改URL之后,它将看起来像http://http://127.0.0.1:3000/products?utf8=%E2%9C%93&query[]=modern&query[]=stone&query[]=limestone
然后,如果你写像
<%= params[:query] %>
它将返回
["modern", "stone", "limestone"]
现在您可以运行一个循环
<ul>
<% params[:query].each do |query_params| %>
<li><%= query_params %></li>
<% end %>
</ul>
然后输出是
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.