Bonjour,
J’ai dans une table “users” un champ nommé “active” (qui est booléen)
permettant de ne traiter que les utilisateurs dont le compte a été
activé. Aussi ai-je ajouté dans chaque action du contrôleur respectif
une condition, afin de vérifier que “active” est bien vrai. En voici
quelques unes :
class UsersController < ApplicationController
def index
@users = User.find( :all, :conditions => [‘active = ?’, true] )
end
def show
@user = User.find( params[:id], :conditions => [‘active = ?’, true]
)
end
end
Cependant je me demande s’il ne serait pas possible de plutôt
centraliser cette condition sur le modèle User, pour que ce soit plus
“DRY” vous voyez 
Merci pour vos lumières.
Zhang’
Cependant je me demande s’il ne serait pas possible de plutôt
centraliser cette condition sur le modèle User, pour que ce soit plus
“DRY” vous voyez 
Je pense que c’est une bonne utilisation du “with_scope”.
Qques explications ici :
http://ryandaigle.com/articles/2006/07/20/a-rails-feature-you-should-be-using-with_scope
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/
C’est même le cas d’école pour with_scope en fait.
Cela dit, il n’y a pas une autre solution élégante permettant d’écrire
qqchose comme users.active.find(:all) ?
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/
C’est même le cas d’école pour with_scope en fait.
Guillaume B. a écrit :
C’est même le cas d’école pour with_scope en fait.
Cela dit, il n’y a pas une autre solution élégante permettant d’écrire
qqchose comme users.active.find(:all) ?
gUI
Si, les named_scope dans la version 2.1 :
class User < ActiveRecord::Base
named_scope :active, :conditions => {:active => true}
end
User.active == User.find(:all, :conditions => {:active => true})
–
Martin C.
http://www.noremember.org | http://www.synbioz.com
Waoh, c’est exactement ce que je souhaitais 
Merci beaucoup !
Si, les named_scope dans la version 2.1 :
C’est assez classe en effet (-:
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/