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
Другие вопросы по тегам