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