如何查找评论'计数...甚至文章'计数

时间:2014-03-01 04:19:46

标签: ruby-on-rails ruby

好的,依靠指南的博客教程:http://edgeguides.rubyonrails.org/getting_started.html

尝试自己学习如何编写方法。

指南做了文章和评论,即belongs_to&有很多关系。

所以,想一想为什么不试着找出整体评论。

这是我为评论控制器编写的方法:

    def total_number_of_comments 
        @article = Article.all
        @comments_total = @article.comments.count
    end    

然后我把它放在文章的视图index.html.erb

 <p>Total number of comments:</p>

 <%=  @comments_total %> 

在索引页面上,它不显示任何内容。

那么,我做错了什么?

而且,我不想只是一个“正确”的答案。我想了解我在这里缺少的东西。

但我在这里迷惑的是如何思考这个问题。

我犹豫不决,因为它会延长帖子,但我想为什么不尝试做一些文章。

所以,这就是我的所作所为:

在文章模型中

      def self.total_number_of_articles
          Article.all.count
       end 

在文章控制器中

  def total_number_of_articles
      @articles_total = Article.total_number_of_articles
  end 

然后再次在Article View的index.html.erb中,我把它放在:

<p>Total number of articles:</p>

<%= @total_number_of_articles %> 

同样,评论或文章中的计数都没有显示出来。

所以....显然我在这里遗漏了一些东西。

修改

评论(total_number_of_comments)方法基于以下方式排序:(来自railsguide)

    def create
    @article = Article.find(params[:article_id])
    @comment = @article.comments.create(comment_params)
    redirect_to article_path(@article)
end

2 个答案:

答案 0 :(得分:0)

您应该在控制器中定义一个函数索引。 在GET上调用/articles/index调用控制器函数索引,您应该在控制器的索引函数中设置@articles_total = Article.total_number_of_articles。你在控制器中的一个函数中没有调用它。

答案 1 :(得分:0)

你错过了许多事情,我很乐意向你解释。

  1. 这里

    def total_number_of_comments 
     @article = Article.all
     @comments_total = @article.comments.count
    end
    

    你必须这样做

    def total_number_of_comments 
        @comments_total = Comment.all.count // simple solution  
    end
    
  2. 接下来是,您没有使用正确的实例变量。

     def total_number_of_articles
        @articles_total = Article.total_number_of_articles
     end
    

    看到自己     

    文章总数:

    <%= @total_number_of_articles %> // this is wrong
    

    您已分配@articles_total但已使用@total_number_of_articles。如果你使用@articles_total它会正常工作。