dans ton message tu dis que ta methode c'est un genre de default_scope, alors pourquoi pas la refactorer en vrai default_scope?
2011/10/2 guillaume <[email protected]>: > Bonjour à tous, > Je suis en phase de migration vers Rails 3 et je viens de tomber sur un > problème avec mon appli. > Dans un de mes modeles je fais : > class << self > def apply_language_scope(lang = "fr") > lt = Lang.find(:all, :conditions=>["short_name IN (?)",lang]) > self.scoped_methods[0] = {:find => {:conditions => ['videos.lang_id IN > (?)', lt.map(&:id)]}} > end > end > Ceci me permet de gérer l'affichage de mon contenu suivant la lang ou les > langs choisies. Une sorte de default_scope. > Le pb est que sous Rails 3 quand j'appel ma fonction apply_language_scope > j'ai ensuite comme erreur : > ruby-1.9.2-p290 :002 > Video.apply_language_scope > => {:find=>{:conditions=>["videos.lang_id IN (?)", [1]]}} > ruby-1.9.2-p290 :005 > Video.find(:first) > NoMethodError: undefined method `includes_values' for > {:find=>{:conditions=>["videos.lang_id IN (?)", [1]]}}:Hash > A priori je pense que cela est du au formatage de ma condition > dans scoped_methods[0] que Rails 3 n'aime pas. > J'ai tenté plusieurs variantes à base e where, en suppr find etc. mais sans > succès. > > D'avance merci si vous avez une idée ! > PS : Migrer vers Rails 3 c'est pas la joie :) > > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > [email protected] > Pour résilier votre abonnement envoyez un e-mail à l'adresse > [email protected] -- Nicolas Blanco, Web developper http://www.nicolasblanco.fr Jabber/GoogleTalk : [email protected] Twitter : http://twitter.com/slainer68 Github : http://github.com/slainer68 Skype : slainer68 -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
