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