I am trying to refactor my code to use ''acts_as_tree''.
I have a self-referencing model called Property (<ActiveRecord) which
currently has the usual belongs_to and has_many declarations:
belongs_to :collection,
:class_name => "Property",
:foreign_key => "collection_id"
has_many :collected_properties,
:class_name => "Property",
:foreign_key => "collection_id"
I''d like to replace these with an ''acts_as_tree''.
In my controller ''create'' method currently I have the
following code:
# create a new Property of the correct sub class
@property = Property.factory(params[:which_type], params[:property])
# if adding a child to a root - not always the case!
if @flash[:is_collection] then
# this finds the immediate root (root id stored in flash)
root=PropertyCollection.find(@flash[:collection_id])
# this updates the foreign key collection_id in my new child row
@property.collection = root
end
# save the new row
if @property.save
flash[:notice] = ''Property was successfully created.''
redirect_to :action => ''list''
else
render(:partial =>
params[:controller]+"/"+params[:picklist][:pick])
end
end
How would I refactor the @propery.collection = root and @property.save
lines to make use of ''acts_as_tree''. I note that in the Agile
Web Dev
with Rails book that you can write:
root.children.create(...) but not sure how to change this to make use
of the save() and my instance variable @property
Thanks,
Lee.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk
-~----------~----~----~----~------~----~------~--~---