我使用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中,我想显示在该帖子上投票的用户的姓名。这应该在投票按钮旁边。有点像这样,
但是如何从控制器发回信息? 或者这种方法是完全错误的?
答案 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