我有两个模型,故事和投票。我有一个用户可以投票的文章列表,该列表作为单独的投票存储在投票模型中。
故事模型有很多投票,story_id 与投票记录一起存储。
目前,在我对故事视图的索引操作中,我只是想简单地计算一下给定故事有多少票,我正在使用以下代码实现这一点。
<%= @total_votes = Vote.where(:story_id => story.id).count %>
但是我想从我的故事索引操作视图中删除它,但不确定是否要存储它?有没有更有效的方法来做到这一点?
我有两个模型,故事和投票。我有一个用户可以投票的文章列表,该列表作为单独的投票存储在投票模型中。
故事模型有很多投票,story_id 与投票记录一起存储。
目前,在我对故事视图的索引操作中,我只是想简单地计算一下给定故事有多少票,我正在使用以下代码实现这一点。
<%= @total_votes = Vote.where(:story_id => story.id).count %>
但是我想从我的故事索引操作视图中删除它,但不确定是否要存储它?有没有更有效的方法来做到这一点?
你说你想存储总票值:
$~ 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
在模型内部,您可以定义一个方法并在控制器中使用它。
def total_votes(sid)
where(:story_id => sid ).count
end
然后在控制器中:
@total_votes = Vote.total_votes(story_id)
这应该进入控制器
def index
@total_votes = Vote.where(:story_id => story.id).count
end