Comment puis-je faire une portée ActiveRecord qui ne touche pas la requête dans Rails 3 en utilisant Arel (probablement)?

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

Question

Essentiellement, je suis à la recherche d'un type de relation no-op d'appliquer à une chaîne de champs d'application.

Disons que j'ai une chaîne de champs:

Post.approved.published.all

Maintenant, à des fins de débogage, je tiens à préciser la portée de published ne rien faire du tout, de sorte que la chaîne ne retournera les messages de approved, peu importe qu'ils soient ou non published.

Qu'est-ce que je reviens dans la méthode suivante:

def self.published
  # what to return?
end
Était-ce utile?

La solution

Faire published un alias pour all ou utilisez scoped pour revenir une relation à laquelle supplémentaire les conditions peuvent être chainged:

def self.published
  all
  #or
  scoped
end

J'utiliser un champ, le retour all ...

scope :published, all

ou faire un alias pour scoped:

scope :published, scoped
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top