首页 > 解决方案 > 将 searchkick 与权威人士一起使用:policyscope 错误

问题描述

我正在尝试使用过滤选项实现一个基本的搜索引擎,但我被困在 searchkick 的实现上。这是我的代码:

class ProductsController < ApplicationController
  def index
    if params[:query].present?
      @products = policy_scope(Product.search(params[:query]))
    else
      @products = policy_scope(Product)
    end
  end
class Product < ApplicationRecord
  searchkick
<h1>Products Index</h1>

<%= form_tag products_path, method: :get do %>
  <%= text_field_tag :query,
    params[:query],
    class: "form-control",
    placeholder: "Chercher par produit ou marque"
  %>
  <%= submit_tag "Rechercher", class: "btn btn-primary" %>
<% end %>
<br>

<ul>
  <% @products.each do |product| %>
     <li><%= link_to product.name, product_path(product) %></li>
     <%= cl_image_tag product.photos.first.key, height: 550, width: 550, crop: :fill, quality: 100 %>
  <% end %>
</ul>

我不知道在哪里创建 policy_scope 因为每次我尝试索引搜索结果时都会返回此错误消息:

undefined method `all' for #<Searchkick::Results:0x00007f9f117b6530> Did you mean? all?

在此先感谢您的帮助!

标签: ruby-on-railselasticsearchpunditsearchkick

解决方案


搜索结果必须直接在视图中而不是控制器中实现!无论如何谢谢 :)


推荐阅读