2011-04-15 3 views

Répondre

3

Ainsi, dans votre modèle:

scope :foo, lambda {|u| where(:user_id => u).limit(10) } 

... que vous pouvez appeler à partir de votre contrôleur avec:

Car.foo(current_user) 
+0

La syntaxe lambda fonctionne ... J'ai un peu l'impression que c'est un peu un hack pré-arel et il y a tellement plus d'options maintenant. – njorden

0

Essayez:

Car.join(:user).where(:user_id => current_user.id).limit(10) 

Mise à jour:

dans votre modèle

def self.with_user(user) 
    join(:user).where(:user_id => user.id) 
end 

dans votre contrôleur

Car.with_user(current_user).limit(10) 
+1

Ce n'est pas une portée, et ne fonctionnerait pas parce que de toute façon 'current_user' ne sera pas valide dans le modèle. – smathy

+0

Je définirais une méthode sur la classe Car, si c'est une possibilité: def self.with_user (current_user) avec quelque chose comme ci-dessus et dans votre contrôleur: Car.with_user (current_user) .limit (10). – njorden

+0

a édité la réponse afin que je puisse mettre en forme des choses ... j'espère que cela aide? – njorden

Questions connexes