Все еще чувствую свой путь вокруг AR (Rails 3.2). В моей user.rb
модели, у меня есть этот кусок кода:Область для объединения в Rails?
def has_answered
self.quizzes.where(finished: true).count != 0
end
В английском языке, я хотел бы, чтобы «проверить, является ли пользователь ответил на викторину».
Я хотел бы изменить его в область действия, что-то вроде scope :has_answered, includes(:quizzes).where("(finished: true). count > ?", 0)
. Я получаю синтаксические ошибки. У меня есть несколько вопросов:
- Действительно ли это лучше (чистота, гибкость и т. Д.).
- Могу ли я по-прежнему реорганизовать это, чтобы сделать его более чистым?
Вы ищете готовые викторины, принадлежащие пользователю или пользователям, у которых есть завершенная викторина? – Jon
Спасибо @Jon, пользователи, которые закончили викторину. Я должен ответить на двусмысленность, хотя –