2015-10-09 76 views
1

我有一个简单的Rails应用程序,其索引页显示59个帖子。Post.count在搜索结果页面上无法正常工作(Rails)

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

我该如何解决这个问题?

INDEX.HTML.ERB CODE

<%= Post.count %> 

搜索功能Posts控制器

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 
+1

尝试'<%= @ posts.count%>' – Pavan

+0

我认为你需要更换@ posts.count –

+0

@ posts.count工作。谢谢! – hikmatyar

回答

1

您应该给<%= @posts.count %>而不是<%= Post.count %><%= Post.count %>返回count全部记录。它与

select count(*) from "posts" 

所以条件被忽略。而不是

2

在你的索引行动你缩小使用一些条件的职位,所以你应该运行在@posts变量,而不是在型号Post本身。

这意味着你想要使用@posts.count

1

使用@ posts.count Post.count的