Вывести параметры pg_search на страницу шаблона Rails 5

У меня есть страница продуктов, которая фильтруется с pg_search драгоценный камень. То, что я хотел бы сделать, это создать крошку, которая перечисляет параметры поиска на странице.

Если мой поисковый URL выглядит так 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>

1 ответ

Решение

Вы должны изменить свой 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>

тогда вывод

  • современный
  • камень
  • известняк
Другие вопросы по тегам