Я создал приложение для ответа на вопрос для клиента, очень похожее на StackOverflow. Я не пытаюсь реализовать какую-то систему баллов (например, репутацию SO). Я пытаюсь получить определенное количество записей через ассоциации (которые, я считаю, установлены правильно). В первую очередь я пытаюсь получить подсчет голосов за ответы пользователей. Вот пример.
На странице /views/questions/show
я перечисляю все ответы на этот вопрос, вызывая частичный _answer.html.erb
. С каждым ответом я получаю информацию о answer.user (имя пользователя, адрес электронной почты и т. Д.), Просто выполняя команду answer.user.username
. Я хочу отобразить в виде значка некоторые форматы подсчета общей точки. Поэтому, если User A
ответил Question A
, рядом с ответом User A
я хочу отобразить общее количество всех голосов User A
.
Я могу успешно получить счетчик ответов пользователей в /views/answers/_answer.html.erb, выполнив следующие действия:
<%= answer.user.answers.count %>
но когда я пытаюсь расширить этот синтаксис / ассоциацию, чтобы получить количество голосов для всех ответов User A
, я получаю неопределенные ошибки метода.
<%= answer.user.answers.votes.count %>
Здесь мои установки в корне неверны или я что-то упустил.
Это немного сбивает с толку, поэтому дайте мне знать, если вам нужно больше деталей.
UPDATE:
Вот ассоциации:
Ответы
class Answer < ActivRecord::Base
belongs_to :question
belongs_to :user
has_many :votes, :dependent => :destroy
end
Голоса
class Vote < ActiveRecord::Base
belongs_to :answer
belongs_to :user
belongs_to :question
end
Пользователи
class User < ActiveRecord::Base
has_many :questions, :dependent => :destroy
has_many :answers, :dependent => :destroy
has_many :votes, :through => :answers , :dependent => :destroy
end