显示在帖子acts_as_votable上投票的用户

时间:2014-06-25 10:55:24

标签: ruby-on-rails

我正在使用acts_as_votable gem并已实现它,以便用户可以对帖子模型进行投票。我想要做的是当我显示我想列出用户投票的帖子时。我目前按以下方式显示分数:

<%= post.cached_votes_score %> 

在posts / index.html.erb中这非常有用。我无法理解如何显示投票的用户。理想情况下,我想显示user.image。

以下是目前的代码:

模型/关切/ votes.rb

def up_vote
  @post = find_post
  @post.liked_by current_user
  flash[:notice] = "Thanks for voting #{current_user.name}"
  redirect_to @post
end

我添加了它,以便用户是选民,而帖子是可投票的。

我还添加了缓存迁移:

class AddCachedVotesToPosts < ActiveRecord::Migration
 def self.up
 add_column :posts, :cached_votes_total, :integer, :default => 0
 add_column :posts, :cached_votes_score, :integer, :default => 0
 add_column :posts, :cached_votes_up, :integer, :default => 0
 add_column :posts, :cached_votes_down, :integer, :default => 0
 add_column :posts, :cached_weighted_score, :integer, :default => 0
 add_column :posts, :cached_weighted_total, :integer, :default => 0
 add_column :posts, :cached_weighted_average, :float, :default => 0.0
 add_index  :posts, :cached_votes_total
 add_index  :posts, :cached_votes_score
 add_index  :posts, :cached_votes_up
 add_index  :posts, :cached_votes_down
 add_index  :posts, :cached_weighted_score
 add_index  :posts, :cached_weighted_total
 add_index  :posts, :cached_weighted_average
end

def self.down
 remove_column :posts, :cached_votes_total
 remove_column :posts, :cached_votes_score
 remove_column :posts, :cached_votes_up
 remove_column :posts, :cached_votes_down
 remove_column :posts, :cached_weighted_score
 remove_column :posts, :cached_weighted_total
 remove_column :posts, :cached_weighted_average
end
end

非常感谢任何帮助。如果您要我添加上面的任何代码,也请告诉我。

编辑这是指向https://github.com/ryanto/acts_as_votable

的链接

2 个答案:

答案 0 :(得分:3)

您可以使用以下代码

获取帖子的所有选民ID列表
 @post.votes_for_ids

答案 1 :(得分:-1)

您可以尝试以下代码获取用户名

@post.vote_by