ruby-on-rails - 将 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?
在此先感谢您的帮助!
解决方案
搜索结果必须直接在视图中而不是控制器中实现!无论如何谢谢 :)
推荐阅读
- java - Java 无法将 reactor.core.publisher.MonoDefer 转换为 EntityClass
- css - 如何根据媒体查询有效地使用不同的字体权重
- nodes - npm 错误 npm 错误!代码 ETARGET npm 错误!notarget 没有为 express@undefined4.16.3 找到匹配的版本
- spring - Spring Boot Admin客户端问题
- doctrine-orm - 生产环境中的查询过多
- javascript - Firebase Firestore 未在 google chrome 中获取数据
- c# - UWP NavigationView 多个相同类型的页面
- batch-file - 批处理文件中的菜单
- php - Laravel 对 OPTIONS 请求的响应 405
- firebase - “context.auth.uid”类型错误:无法读取未定义的属性“uid”