我为我的网站编写了搜索功能。有用。但是(!)它找不到所有的帖子。只是其中一些(2-3)。但是当我在数据库中搜索它时,它会发现所有结果。
我的模特:
def self.search(query)
where("title like ?", "%#{query}%")
end
控制器:
if params[:search]
@posts = Post.search(params[:search]).order("id DESC").limit(10)
else
@posts = Post.all.order('id DESC').limit(10)
end
在观点中:
<%= form_tag('/find', :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:search], :class => "search" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
<div class="posts">
<% @posts.each do |post| %>
<%= post.title %>
<% end %>
</div>
为什么不打印所有结果?
答案 0 :(得分:0)
几点变化: 模态
def self.search(query)
where("title like :title", title: "%#{query.strip.chomp}%")
end
控制器
if params.has_key?(:search)
@posts = Post.search(params[:search]).order("id DESC").limit(10)
else
@posts = Post.all.order('id DESC').limit(10)
end
试试这个,如果这仍然不起作用,请返回一个重现此问题的示例应用。