如何解决Rails Search 返回所有 itens 而不是搜索一个
我有一个包含个人图书馆的 rails 应用程序,我有一个搜索功能,它开始总是返回数据库中的所有项目,而不仅仅是搜索到的项目。 每次搜索后的网址都是这样的,例如:
http://localhost:3000/users/user_id/books?search=Alquimia
但返回所有,而不仅仅是那个特定的...提前感谢您提供的所有帮助。
代码如下: (我会发布我尝试过的两种方法,第一种是使用 PGsearch)
第一次尝试
books_controller.rb
def index
if params[:term].present?
@books = Book.search_by_full_name(params[:term])
@books = policy_scope(Book)
else
@books = Book.all
@books = policy_scope(Book)
end
end
_book_search_bar.html.erb
<%= 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 %>
book.rb
class Book < ApplicationRecord
belongs_to :user
has_many :loans
has_one_attached :photo
validates :title,presence: true
validates :author,presence: true
include PgSearch::Model
pg_search_scope :search_by_full_name,:against => [:title,:author],using: {
tsearch: {
prefix: true
}
}
end
第二次尝试
books_controller.rb
def index
if params[:search]
@books = Book.where('name LIKE ?',"%#{params[:search]}%")
@books = policy_scope(Book)
else
@books = Book.all
@books = policy_scope(Book)
end
end
_book_search_bar.html.erb
<%= form_tag user_books_path(:user_id),method: :get do %>
2 <%= label_tag "Search for a book:" %>
3 <%= text_field_tag :search,params[:search] %>
4 <%= submit_tag 'Search',name: nil %>
5 <% end %>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。