#sql #ruby #ruby-on-rails-3 #activerecord
#sql #ruby #ruby-on-rails-3 #activerecord
Вопрос:
У меня есть следующие классы / отношения:
#post.rb
belongs_to :user
#user.rb
has_many :posts
Мне нужно сделать что-то вроде этого:
scope :has_posts, joins(:posts).where('posts is not empty')
или что-то вроде:
User.where('posts is not empty')
Каков правильный синтаксис для запросов к отношениям? Могу ли я сделать это эффективно без использования кэша счетчиков?
Ответ №1:
в user.rb:
scope :has_posts, :conditions => "users.id IN (SELECT user_id FROM posts)"
в контроллере:
User.has_posts