Ruby on rails Rails Pg_搜索停止工作,代码未更改

Ruby on rails Rails Pg_搜索停止工作,代码未更改,ruby-on-rails,pg-search,Ruby On Rails,Pg Search,我有一个图书馆管理应用程序与pg_搜索实施;一切都很好,所有的意外情况下,它开始显示索引上的所有项目,但我没有改变任何有关该功能的内容。 我会留下所有相关的代码,如果需要更多,请告诉我。 提前谢谢 book.rb classbook

我有一个图书馆管理应用程序与pg_搜索实施;一切都很好,所有的意外情况下,它开始显示索引上的所有项目,但我没有改变任何有关该功能的内容。 我会留下所有相关的代码,如果需要更多,请告诉我。 提前谢谢

book.rb

classbookcsv您只需重新分配
@books=policy\u scope(Book)
,这将删除搜索范围和分页

def index
  if params[:term].present?
    @books = Book.search_by_full_name(params[:term])
  else
    @books = Book.paginate(page: params[:page])
  end
  @books = policy_scope(@books)
end
将实际范围传递给pundit或将其倒置,而不是类:

def index
  @books = policy_scope(Book).then do |scope|
    if params[:term].present?
      scope.search_by_full_name(params[:term])
    else
      scope.paginate(page: params[:page])
    end
  end
end
已停止工作,但代码未更改


不太可能。更可能的是,回归是在实现Pundit时造成的,并且没有检测到它的测试。事情不会神奇地发生。

Tks的输入。。。我试过你的解决办法,但还是不起作用;我从一开始就实现了pundit,pg_搜索可以很好地使用它,这就是为什么我可以找到它。“它不起作用”并没有告诉我任何事情。我真的只能考虑问题中的代码,因为你没有写任何关于实际方法的东西,这可能是错误的。我的建议是使用搜索参数和不使用搜索参数编写集成或功能测试,并断言包含哪些记录。我非常感谢您的帮助,真的。。。也许因为我是个“傻瓜”,我找不到最好的解释来解释这个问题。。。但当我说“它不起作用”时,url显示:搜索和提交的词,但视图索引总是给出整个数据库。但我会接受你的建议,尝试实施一些测试
<%= form_tag user_books_path(:user_id), method: :get, class: "search-bar" do %>
  <%= text_field_tag 'term', params[:term], placeholder: "Enter book or author" %>
  <br>
  <br>
  <%= submit_tag "SEARCH BOOK", class: "btn-main" %>
<% end %>
def index
  if params[:term].present?
    @books = Book.search_by_full_name(params[:term])
  else
    @books = Book.paginate(page: params[:page])
  end
  @books = policy_scope(@books)
end
def index
  @books = policy_scope(Book).then do |scope|
    if params[:term].present?
      scope.search_by_full_name(params[:term])
    else
      scope.paginate(page: params[:page])
    end
  end
end