Forum: Rails France named_scope automatiquement

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Pierre V. (Guest)
on 2008-11-20 20:42
(Received via mailing list)
Bonsoir à tous,

Existe un moyen/plugin pour générer des named_scope simples (j'ai vu
http://giantrobots.thoughtbot.com/2008/10/14/life-...
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
Jean-François Trân (Guest)
on 2008-11-20 21:16
(Received via mailing list)
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_
Pierre V. (Guest)
on 2008-11-20 21:39
(Received via mailing list)
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...
Christian L. (Guest)
on 2008-12-08 21:55
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
Pierre V. (Guest)
on 2008-12-09 20:14
(Received via mailing list)
Merci Christian mais ce n'est pas exactement la même utilisation.

2008/12/9 Pierre V. <removed_email_address@domain.invalid>
Jean-François Trân (Guest)
on 2008-12-30 15:09
(Received via mailing list)
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/66ee5890c5f21...

   -- Jean-François.

--
http://twitter.com/underflow_
This topic is locked and can not be replied to.