Как создать область ActiveRecord, которая не влияет на запрос в Rails 3 с использованием Arel (предположительно)?

По существу, я ищу тип отношения no-op для применения к цепочке областей.

Предположим, что у меня есть цепочка областей:

Post.approved.published.all

Теперь, для целей отладки, я хочу, чтобы область published ничего не делала, так что цепочка вернет только сообщения approved, независимо от того, являются ли они published или нет.

Что бы я вернулся в следующем методе:

def self.published
  # what to return?
end

Ответы

Ответ 1

Сделайте published псевдоним для all или используйте scoped, чтобы вернуть отношение, к которому могут быть добавлены дополнительные условия:

def self.published
  all
  #or
  scoped
end

Я бы использовал область, возвращая all...

scope :published, all

или, сделайте его псевдонимом для scoped:

scope :published, scoped