How do I make an ActiveRecord scope that doesn't affect the query in Rails 3 using Arel (presumably)?

StackOverflow https://stackoverflow.com/questions/7339214

문제

Essentially I am looking for a no-op type of relation to apply to a chain of scopes.

Lets say I have a chain of scopes:

Post.approved.published.all

Now, for debugging purposes, I wish to make the published scope do nothing at all, so that the chain will only return approved posts, regardless of whether they are published or not.

What would I return in the following method:

def self.published
  # what to return?
end
도움이 되었습니까?

해결책

Make published an alias for all, or use scoped to return a relation to which additional conditions can be chainged:

def self.published
  all
  #or
  scoped
end

I would use a scope, returning all...

scope :published, all

or, make it an alias for scoped:

scope :published, scoped
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top