Just to add more information, I'm using RoR 2.3.5. Thanks
On Thu, Apr 15, 2010 at 12:36 AM, Jonhy Pear <[email protected]> wrote: > Hi, I'm puzzzled.... > > I have this model: > > class UserCampaign < ActiveRecord::Base > belongs_to :user > belongs_to :campaign > attr_accessible :is_active, :user_id, :campaign_id > > validates_presence_of :is_active, :user_id, :campaign_id > end > > > and have this observer: > > class UserCampaignObserver < ActiveRecord::Observer > > def after_create(user_campaign) > update_active(user_campaign) > end > > def after_update(user_campaign) > update_active(user_campaign) > end > > private > > def update_active(user_campaign) > if user_campaign.is_active > ucs = UserCampaign.find_all_by_user_id_and_is_active( > user_campaign.user.id,true) > for uc in ucs do > if uc.id != user_campaign.id > uc.is_active = false > uc.save! > end > end > end > end > > end > > This is simple to guarantee that only one UserCampaign is active. > > The problem is that when the observer runs, in uc.save!, the validation > fails giving me an error saying that the attribute is_active is > required.... > > If I remove is_required attribute from the list > of validates_presence_of, everything goes fine. > > Why it gives me that error saying that is_active is required when I have > set it just before the save in the observer? > > Thanks, > -- João Miguel Pereira http://jpereira.eu LinkedIn: http://www.linkedin.com/in/joaomiguelpereira [email protected] (351) 96 275 68 58 -- 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 [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-talk?hl=en.

