0

У меня есть драгоценный камень Thumbs_Up, и голосование работает нормально.Ruby On Rails: Thumbs Up Результаты подсчета голосов

Я добавил этот код в контроллер сообщений:

def poll_winners 
@posts = Post.tally(
{ :at_least => 1,  
    :limit => 20, 
    :order => 'vote_count desc' 
}) 

Я просто не могу понять, что ставить в действительном зрения, чтобы получить его, чтобы отобразить.

Это просто <% poll_winners %>?

EDIT2: Вот полное сообщение об ошибке:

undefined local variable or method `poll_winners' for #<#<Class:0x000000040a4278>:0x007f55806c3360> 

* EDIT * Вот мой полный контроллер сообщений (не уверен, если это правильно):

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 
+0

Теперь я получаю «неопределенные локальные переменные poll_winners» Это сообщение контроллер правильно? класс PostsController 1, : at_most => 10000, : limit => 10, : order => 'vote_count desc' }) end end –

+0

Это полное сообщение: неопределенная локальная переменная или метод 'poll_winners 'для # <# <Класс: 0x000000040a4278>: 0x007f55806c3360> –

+0

Пожалуйста, переместите метод' poll_winners' от контроллера к помощнику. В папке помощников вы должны иметь файл 'post_helper.rb'. –