Named_scope automatiquement


#1

Bonsoir à tous,

Existe un moyen/plugin pour générer des named_scope simples (j’ai vu


mais il me manque quelque chose).

A chaque fois je me retrouve à déclarer des named_scope comme :

named_scope :category, lambda { |category| { :conditions =>
{:category => category}} }

Il n’existe pas une manière plus simple pour éviter de déclarer des
named_scope pour chacun de ses champs ?

Je vous remercie par avance,

Pierre


#2

Le 20 novembre 2008 19:41, Pierre a écrit :

named_scope pour chacun de ses champs ?
L’idée générale (à affiner) :

class Gabuzomeu < AR::B
column_names.each do |attr|
named_scope attr.to_sym, lambda do |value|
{ :conditions => { attr_to_sym => value } }
end
end
end

(non
testé)
(+ éventuellement mettre ça dans une méthode de classe truc
et appeler truc dans la définition de classe. etc.)

– Jean-François.


Rails Party à Paris dimanche 30 novembre !

http://twitter.com/underflow_


#3

merci Jean-François.
je croyais que j’avais lu quelque part qu’il y avait une méthode tout
prête déjà dans Rails (ou un plugin pour le faire) mais j’étais plus
sûr…


#4

Merci Christian mais ce n’est pas exactement la même utilisation.

2008/12/9 Pierre V. removed_email_address@domain.invalid


#5

Bonjour Pierre,

je croyais que j’avais lu quelque part qu’il y avait une méthode tout
prête déjà dans Rails

Est-ce que la nouvelle classe StringInquirer peut t’être utile ?

http://apidock.com/rails/ActiveSupport/StringInquirer

class Truc
def category
ActiveSupport::StringInquirer.new(“machin”)
end
end

truc = Truc.new
truc.category.machin?
=> true

truc.category.chose?
=> false

Christian


#6

Le 20 novembre 2008 19:41, Pierre a écrit :

named_scope pour chacun de ses champs ?
Dans Edge, il y a possibilité de génération dynamique de named scopes
(“dynamic scopes”) :

Also enables dynamic scopes like scoped_by_user_name(user_name) and

scoped_by_user_name_and_password(user_name, password) that

are turned into scoped(:conditions => [“user_name = ?”, user_name])

and

scoped(:conditions => [“user_name = ? AND password = ?”, user_name,

password])

respectively.

http://github.com/rails/rails/commit/66ee5890c5f21995b7fe0c486547f1287afe2b55

– Jean-François.


http://twitter.com/underflow_