Используйте named_scope
s, они ваши друзья
Вы пытались использовать named_scope
на модели Group
?
Потому что все на самом деле является прокси, пока вам на самом деле не нужны данные,
в любом случае, в результате вы получите один запрос:
class User < ActiveRecord::Base
named_scope :pending, :conditions => { :status => 'pending' }
и затем:
a_group.users.pending
Подтверждение
Я запустил следующий код с моим существующим приложением:
Feature.find(6).comments.published
В результате этого запроса (игнорируется первый запрос, чтобы получить функцию 6):
SELECT *
FROM `comments`
WHERE (`comments`.feature_id = 6)
AND ((`comments`.`status` = 'published') AND (`comments`.feature_id = 6))
ORDER BY created_at
А вот соответствующий код модели:
class Feature < ActiveRecord::Base
has_many :comments
class Comment < ActiveRecord::Base
belongs_to :feature
named_scope :published, :conditions => { :status => 'published' }