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.

Reply via email to