0

我可以显示用户喜欢的投票,但我不知道如何显示喜欢记录的实际记录。检索用户投票记录的最简单方法是什么?

控制器.rb

def show
  @user = User.find(params[:id])
  @liked = @user.votes
end

显示.html.haml

= @liked.to_json

结果:

[{"id":5,"votable_id":8,"votable_type":"Post","voter_id":2,"voter_type":"User","vote_flag":true,"vote_scope":null,"vote_weight":1,"created_at":"2016-02-01T00:33:15.968Z","updated_at":"2016-02-01T00:33:15.968Z"}]

我该如何打开它,以便我可以显示帖子记录中的标题、描述等...?

4

2 回答 2

0

您现在可能已经找到了答案——但这里是我所做的,以显示用户使用acts_as_votablegem 投票的事项列表。我正在使用设计,所以我使用current_user在控制器中指定当前登录的用户。

控制器.rb

@liked_posts = current_user.get_up_voted(Post)

视图.html.erb

<h3>Your 'liked' blog posts</h3>
<% @liked_posts.each do |post| %>
    <p><%= link_to post.title, post %></p>
<% end %>

您可以拥有任意数量的内容——显示用户在您的应用程序中“喜欢”的内容的集合:

@liked_quotations = current_user.get_up_voted(Quote)
@liked_comments = current_user.get_up_voted(Comment)
@liked_stories = current_user.get_up_voted(Story)

然后,遍历这些以显示每个集合。

还有另外两种可能有用的方法——一种收集所有投赞成票的东西,另一种收集所有投反对票的东西:

current_user.get_voted(Post)
current_user.get_down_voted(Post)
于 2016-10-06T15:44:35.107 回答
0

投票是否有 post_id ?我假设你有 vote.rb 和 post.rb 模型。

投票.rb

belongs_to :post

post.rb

has_many :votes

在节目中

- @liked.each do |l| 
  = l.post.title 
  = l.post.description 
于 2016-02-01T01:57:05.773 回答