У меня есть несколько моделей в проекте Rails, которые связаны с пользователем, и я столкнулся с проблемой загрузки. Я пытаюсь отобразить все данные пользователя на странице.
Мои объявления моделей выглядят примерно так:
class User < ActiveRecord::Base
validates_presence_of :server_user_id
has_many :setup_notes, :foreign_key => "server_user_id"
has_many :closure_votes, :foreign_key => "user_id"
end
class SetupNote < ActiveRecord::Base
belongs_to :user, :foreign_key => "server_user_id"
end
Следует отметить, что в таблице SQL для голосов закрытия, user_id
- это то же значение, что и server_user_id
в таблице для пользователей.
Когда я пытаюсь использовать символ :include
в запросе Rails, он заканчивается использованием user.id
в качестве значения для поиска, когда мне нужно найти закрывающие голоса и настроить примечания через user.server_user_id
. Другими словами,
me = User.first(:conditions => ["server_user_id = ?", 12610], :include => :setup_notes)
создает запрос MySQL
SELECT `setup_notes`.* FROM `setup_notes` WHERE (`setup_notes`.server_user_id = 1)
Который возвращает пустой набор. Есть ли способ отформатировать запрос / модели Rails для отправки соответствующего запроса SQL, или мне нужно написать необработанный запрос для всех моделей, связанных с пользователями (и если это так, как мне это сделать?)
Спасибо!