Post.count在搜索结果页面上无法正常工作(Rails)

时间:2015-10-09 10:48:43

标签: ruby-on-rails ruby

我有一个简单的Rails应用程序,它有一个显示59个帖子的索引页。

问题在于,如果我搜索某些内容,Post.count会继续向我显示索引页面上的帖子的原始数量 - 例如,如果我搜索一个名为“Quilon”的帖子,我会得到搜索结果只显示1个帖子,但Post.count仍然显示原始帖子号码为59。

我该如何解决这个问题?

INDEX.HTML.ERB代码

<%= Post.count %> 

在行李控制器中搜索功能

def index
    @posts = Post.all
    if params[:search]
      @posts = @posts.search(params[:search]).order("created_at DESC")
    end
    if params[:zagat_status].present?
      @posts = @posts.zagat_status(params[:zagat_status]).order("created_at DESC")
    end
  end

3 个答案:

答案 0 :(得分:2)

在您的索引操作中,您可以使用某些条件缩小帖子范围,因此您应该使用@posts变量,而不是模型Post本身。

这意味着您要使用@posts.count

答案 1 :(得分:1)

您应该<%= @posts.count %>代替<%= Post.count %><%= Post.count %>会返回 所有记录的count 。它和

一样
select count(*) from "posts"

因此忽略了条件。

答案 2 :(得分:1)

使用@ posts.count而不是Post.count