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