Le 23 janv. 07 à 15:22, Samuel DECHOMETS a écrit :
Bonjour à tous,
Salut,
Tout est dans le titre ou presque. Je voudrais savoir s’il y a
moyen de faire un model avec une condition toujours valable. J’ai
une table “produits” et je ne voudrais voir que les produits
“exportés” quelquesoit la requête find lancée dans le controller.
J’ai d’abord pensé à faire une vue avec la condition where qui va
bien, mais c’est pas très Rails…
Ton bonheur se trouve dans with_scope :
Product.with_scope :find => { :conditions => [ ‘state = ?’,
‘exported’ ] } do
Product.find(:all)
end
class ProduitExportesController < ApplicationController
model :product, :conditions=> [ ‘state = ?’, ‘exported’ ]
use_ma_lib
end
module ma_lib
self.included(base)
super
base.extend(ClassMethods)
end
module ClassMethods
def use_ma_lib
def foo1
…find(:all)…
end
def foo2
…find(:all)…
end
end
end
end
Avec les find(:all) de ma_lib prenant bien sûr en compte la condition [
‘state = ?’, ‘exported’ ]
moyen de faire un model avec une condition toujours valable. J’ai
end
“encapsuler” ces find dans un with_scope à moins de hacker les libs
self.included(base)
end
end
end
end
Avec les find(:all) de ma_lib prenant bien sûr en compte la
condition [ ‘state = ?’, ‘exported’ ]