Skip to main content
 首页 » 编程设计

ruby-on-rails中显示对帖子acts_as_votable进行投票的用户

2025年01月19日8jillzhang

我正在使用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 

Iv 添加了它,以便用户是投票者并且帖子可以投票。

我还添加了缓存迁移:

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 

任何帮助将不胜感激。如果您希望我在上面添加任何代码,也请告诉我。

编辑这里是 gem 的链接 https://github.com/ryanto/acts_as_votable

请您参考如下方法:

您可以使用以下代码获取该帖子的所有选民 ID 列表

 @post.votes_for_ids