МоделиRails ActiveRecord запрос для соединения нескольких таблиц
class AdminUser < ActiveRecord::Base
has_many :users
end
class User < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
has_many :comments
end
Я хочу, чтобы получить список всех комментариев под каждую должность, созданную каждый пользователь в соответствии с настоящим AdminUser.
Чтобы получить все комментарии по каждому сообщению, сделанным одним пользователем, легко. Я бы использовал что-то вроде
comments=Comment.joins(:post).where("posts.user_id= ?",userid.to_s)
Но здесь мне нужно подняться еще на один уровень. т.е. получать комментарии от каждой записи, сделанной каждым пользователем до 1 admin_user. Я никогда раньше не использовал более одного соединения, поэтому я немного смущен.
Если бы я мог использовать ActiveRecord ассоциации внутри строки это может выглядеть
comments=Comment.joins(:post).joins(:user).where("posts.user.admin_user.id=?",adminuser_id)
Но я не могу использовать posts.user.admin_user
Я предположил, что комментарий принадлежит к сообщению, и сообщение принадлежит пользователю. Вот почему. – Santanu
Прочтите вопрос. –
Да, это было то, что я искал. : user) .where ("user.admin_user_id = ?, admin_id) –