我有两个模特,故事&投票。我有一个用户可以投票的文章列表,它在投票模型中作为单独的投票存储。
故事模型有很多票,故事_id与投票记录一起存储。
在我对故事视图的索引操作中,我只是想做一个简单的计数,看看给定故事有多少票,我用以下代码实现了这一点。
<%= @total_votes = Vote.where(:story_id => story.id).count %>
但是我想从我的故事索引操作视图中删除它但不确定是否存储它?有没有更有效的方法呢?
答案 0 :(得分:3)
<%= story.votes.count %>
如果您担心数据库性能,可能需要添加counter cache。
答案 1 :(得分:0)
在模型中,您可以定义一个方法并在控制器中使用它。
def total_votes(sid)
where(:story_id => sid ).count
end
然后在控制器中:
@total_votes = Vote.total_votes(story_id)
答案 2 :(得分:0)
你说你想存储总票数值:
$~ rails g migration add_total_votes_to_stories total_votes:integer
class Story
after_save, :update_total_votes
private
def update_total_votes
write_attribute :total_votes, votes.count
end
答案 3 :(得分:-2)
这应该进入控制器
def index
@total_votes = Vote.where(:story_id => story.id).count
end