Не уверен насчет области, но я бы начал с использования отношений модели, например, с таким запросом:
(заданный вопрос и пользователь)
responses = question(question).user_responses(user)
Затем, когда все будет работать нормальноЯ хотел бы перейти к областям (при необходимости) и иметь:
область действия для пользовательской модели для ответа
(Rails3 syntax) scope :responses_by_user, labmda { join(:responses) }
область действия для модели вопросов для ответов
(Rails3 syntax) scope :responses_by_question, labmda { join(:responses) }
Примечание: я больше склоняюсь к этим подходам «соединения», полагая, что они будут выполнять только «внутренние» соединения, то есть возвращать только те строки, где существуют записи ответов.Я делаю это в отличие от синтаксиса, более похожего на lambda { where ('user_id = ?', User.id) }
Then you could also chain them together. Something like
Question.responses_by_question (вопрос) .responses_by_user (пользователь) `