Timo Springmann
2007-May-08 12:50 UTC
Assigning default values to attributes in a has_one association
Hi List,
I''ve a little problem here, for which I can''t find a
solution:
I have two models, person and event. Event is a polymorphic association
(timeable). In my person model I would like to define an association with
Events:
class Person < ActiveRecord::Base
has_one birthday,
:dependent => :destroy,
:as => :timeable,
:class_name => "Event",
:foreign_key => :timeable_id,
:conditions => "category = ''birthday''"
end
As you can see, there''s a category field in the event table, which
should
contain the category of the Event. In this case, is should
contain "birthday".
I would like this category attribute to get set automatically to
"birthday"
whenever I create a new association.
So, calling simething like
@client.build_birthday(params[:birthday])
in my controller should set the category attribute to "birthday". I
was trying
something like:
has_one birthday,
:dependent => :destroy,
:as => :timeable,
:class_name => "Event",
:foreign_key => :timeable_id,
:conditions => [''category = ?'', name.to_s] do
self.category = "birthday"
end
But this seems not to work.
Also there are callbacks for collection associations (i.e. before_add and
after_add), but this does not work with has_one associations.
So, what would be the best way of doing womthing like this (I sure there is at
least _one_ way...)
Regards,
Timo
--~--~---------~--~----~------------~-------~--~----~
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?hl=en
-~----------~----~----~----~------~----~------~--~---