Patrick :
> > Il faut faire un peu de métaprogrammation alors. T'en étais pas
> > loin.
> >
> > module Castafiore
> >   def babar *args
> >     args.map(&:to_s).each do |name|
> >       define_method(name.underscore.pluralize) do
> >         name.classify.constantize.find :all, :params => { :profile_id => id 
> > }
> >       end
> >     end
> >   end
> > end
> >
> > ARes::Base.extend Castafiore
> >
> > class Profile < ARes::Base
> >   babar :profiles, :phones, :addresses, :invites
> > end
> >
>
> ok merci beaucoup. Si je veux pouvoir configurer le 'profile_id' et
> utiliser 'user_id' à la place, tu sais comment je pourrais faire ça?

Pour une interface :

class Profile < ARes::Base
  babar :profiles, :phones, :addresses, :invites, :foreign_key =>
'rackham_le_rouge'
end

cela nécessite de modifier un peu babar.

module Castafiore
  def babar *args
    if args.last.is_a? Hash
      options     = args.pop
      foreign_key = options[:foreign_key] if options.include? :foreign_key
    end
    foreign_key ||= :profile_id

    args.map(&:to_s).each do |name|
      define_method(name.underscore) do
        name.classify.constantize.find :all, :params => {
foreign_key.to_sym => id }
      end
    end
  end
end

après foreign_key... ou primary_key ? ça dépend depuis quelle ressource
on se place.

    -- Jean-François.

-- 
membre du CA de Ruby France.
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )

--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---

Répondre à