Hi all, 

I had the idea of add associations to Active Resource, something like AR
associations, but only the 3 basics, belongs_to, has_one and has_many:

 class Project < ActiveResource::Base
   belongs_to    :portfolio
   has_one       :project_manager
   has_many      :milestones

 end  


#--------------------------------------------------------------------
# belogns_to

p = Proyect.new

- p.portfolio
- p.portfolio=(p)

#--------------------------------------------------------------------
# has_one

p = Proyect.new

- p.project_manager
- p.project_manager=(pm)
- p.build_p.project_manager(attributes={})
- p.create_project_manager(attributes={})


#--------------------------------------------------------------------
# has_many

Project#milestones.empty?, Project#milestones.size, Project#milestones,
Project#milestones<<(milestone), Project#milestones.delete(milestone),
Project#milestones.find(milestone_id), Project#milestones.find(:all, options),
Project#milestones.build, Project#milestones.create

The way to create those new association methods could be adding a private
instance variable related to the resource, and add an instance method by
metaprogramming making the method name based on the resource name, so:

IMO this basic 3 associacionts is a good start, i did something like that in
a project that I'm working and works fine, this feature will avoid reptition
of creates all methods by hand like this:

def project_manager
  ProjectManager.find(find(:params => { :project_id => id })
end

for every model that you need to "associate".

Regards.


-- 
"Premature optimization is the root of all evil (or at least most of it) in
programming."

(Donald Knuth)


+-------------------------------------+
Gastón Ramos
http://gastonramos.com.ar/
GNU/Linux Counter user #450312

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en.

Reply via email to