17

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
tshepang
  • 12,111
  • 21
  • 91
  • 136
jakeonrails
  • 1,885
  • 15
  • 37

1 Answers1

23

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
user229044
  • 232,980
  • 40
  • 330
  • 338