好的,依靠指南的博客教程: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
答案 0 :(得分:0)
您应该在控制器中定义一个函数索引。
在GET
上调用/articles/index
调用控制器函数索引,您应该在控制器的索引函数中设置@articles_total = Article.total_number_of_articles
。你在控制器中的一个函数中没有调用它。
答案 1 :(得分:0)
你错过了许多事情,我很乐意向你解释。
这里
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
接下来是,您没有使用正确的实例变量。
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
它会正常工作。