Ruby On Rails: голосование за результаты голосования
У меня загружен гем Thumbs_Up, и голосование работает нормально.
Я добавил этот код в контроллер сообщений:
def poll_winners
@posts = Post.tally(
{ :at_least => 1,
:limit => 20,
:order => 'vote_count desc'
})
Я просто не могу понять, что добавить в фактическое представление, чтобы оно отображалось.
Это просто <% poll_winners %>
?
РЕДАКТИРОВАТЬ 2: Вот полное сообщение об ошибке:
undefined local variable or method `poll_winners' for #<#<Class:0x000000040a4278>:0x007f55806c3360>
*РЕДАКТИРОВАТЬ* Вот мой полный контроллер сообщений (не уверен, что это правильно):
class PostsController < InheritedResources::Base
def vote_up
begin
current_user.vote_for(@post = Post.find(params[:id]))
redirect_to [@post]
flash[:success] = "You have voted successfully"
rescue ActiveRecord::RecordInvalid
redirect_to [@post]
flash[:error] = "You have already voted"
end
end
def poll_winners
@posts = Post.tally(
{ :at_least => 1,
:at_most => 10000,
:limit => 10,
:order => 'vote_count desc'
})
end
end
1 ответ
Решение
Вы можете просто просмотреть результаты метода poll_winners
<% poll_winners.each do |pw| %>
<%= pw %>
<% end %>
Затем вы можете получить определенный атрибут Post
например, если он имеет title
ты можешь просто сделать <%= pw.title %>
вместо просто <%= pw %>
который вернет объект.
Я предполагаю, что метод заключается в следующем
def poll_winners
@posts = Post.tally(
:at_least => 1,
:limit => 20,
:order => 'vote_count desc'
})
end