使用Thumbs_up显示在帖子上投票的用户

时间:2014-09-28 04:58:49

标签: ruby-on-rails ruby model-view-controller

我使用Thumbs_Up gem让用户在帖子上投票(称为Topic)。我已经完成了投票部分,但现在我想显示在该特定帖子上投票的用户。我对Ruby On Rails很陌生,而且我被困在视图部分。

这是我的控制器:app / controllers / topics_controller.rb

def vote_who
  @topic = Topic.find(params[:id])
  @vote_list=@topic.voters_who_voted_for
end

在我的index.html.erb中,我想显示在该帖子上投票的用户的姓名。这应该在投票按钮旁边。有点像这样,

index.html.erb view

但是如何从控制器发回信息? 或者这种方法是完全错误的?

1 个答案:

答案 0 :(得分:0)

恕我直言,最好在每个特定主题的“节目”视图中显示所有选民(想象一下你有一个主题的100个选民,索引视图中的这个表会是什么样子?)。

这样您就不需要任何不同的操作(由于Rails约定1动作== 1视图(通常))。只需加入show操作:

def show
  @topic = Topic.find(params [:id])
  @vote_list = @topic.voters_who_voted_for
end

然后在你看来(show.html.erb)你需要做这样的事情:

<% @vote_list.each do |voter| %> 
  <%= voter.email %> #or login, or name, or any user's attribute you want to display in your list
<% end %>  

或者甚至尝试简化此操作:在show中保留TopicsController操作(不要创建任何@vote_list变量,只找到正确的主题),然后调用{{您voters_who_voted_for内的方法,例如:

show view