2010-09-17 9 views
2

J'ai un modèle:Comment ajouter named_scope à une portée anonyme?

class Shirt < ActiveRecord::Base 
    named_scope :red, :conditions => { :color => 'red' } 
    named_scope :blue, :conditions => { :color => 'blue' } 
    named_scope :xl, :conditions => { :size => 'xl' } 
end 

J'ai oublié, comment ajouter facilement la portée du nom de champ anonyme existant:

scope = Shirt.scoped({}) 
#and how to add ie. :red to scope? 

Répondre

0

Ceci peut être réalisé avec le code suivant:

named_scope :colour, lambda { |colour_id| {:conditions => ["colour_id = ?", colour_id])}} 

Vous pouvez enchaîner des portées nommées:

Shirt.red.xl 
+0

Vous avez posté, comment créer une portée de nom, mais je voudrais savoir comment ajouter une portée existante à une portée anonyme. –

+0

Désolé - mal compris. Voulez-vous dire comme dans: Shirt.scoped ({}). Red.xl – Codebeef