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
class Person < ActiveRecord::Base
has_one birthday, :dependent => :destroy, :as => :timeable, :class_name => "Event", :foreign_key => :timeable_id, :conditions => "category = 'birthday'"
As you can see, there’s a category field in the event table, which
contain the category of the Event. In this case, is should
I would like this category attribute to get set automatically to
whenever I create a new association.
So, calling simething like
in my controller should set the category attribute to “birthday”. I was
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
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
least one way…)