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