搜索在Rails中找不到所有帖子。其中只有2-3个

时间:2015-02-01 12:52:15

标签: ruby-on-rails search

我为我的网站编写了搜索功能。有用。但是(!)它找不到所有的帖子。只是其中一些(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>

为什么不打印所有结果?

1 个答案:

答案 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

试试这个,如果这仍然不起作用,请返回一个重现此问题的示例应用。