我能够显示用户喜欢的投票,但我不知道如何显示喜欢的记录的实际记录。什么是检索用户投票记录的最简单方法?
controller.rb
def show
@user = User.find(params[:id])
@liked = @user.votes
end
show.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"}]
如何转动这个以便我可以在Post记录中显示标题,描述等?
答案 0 :(得分:0)
投票有post_id吗?我以为你有vote.rb和post.rb模型。
vote.rb
belongs_to :post
post.rb
has_many :votes
在节目中
- @liked.each do |l|
= l.post.title
= l.post.description
答案 1 :(得分:0)
您现在可能已经找到了答案 - 但我现在要做的是显示用户使用acts_as_votable
gem投票的内容列表。我正在使用Devise,所以我使用current_user
来指定控制器中当前登录的用户。
<强> controller.rb 强>
@liked_posts = current_user.get_up_voted(Post)
<强> view.html.erb 强>
<h3>Your 'liked' blog posts</h3>
<% @liked_posts.each do |post| %>
<p><%= link_to post.title, post %></p>
<% end %>
您可以根据需要添加尽可能多的内容 - 以显示用户所喜爱的内容集合&#39;在您的应用程序中:
@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)