Thanks, yes, that's what I need. See my own response that was
supposed to get out before you had a chance to answer :-)
-glenn
John Parker wrote:
> Using before_validation_on_create instead of before_create might get
> you where you want to go. Depending on how you actually set the year
> attribute, you might need to need to add some additional logic to
> #set_year since it would be running in an object that hasn't yet been
> validated.
>
> -John
>
> On Fri, Jan 9, 2009 at 6:03 PM, Glenn Little <[email protected]> wrote:
>> I have an issue where I'm trying to do some validation, but part of
>> the validation calculation is based on a value that I want to set
>> in a before_create filter. Unfortunately, before_create is called
>> *after* the validation callbacks, so my value isn't available at
>> validation time.
>>
>> Specifically:
>>
>> #-------------------------------------------------
>> validates_uniqueness_of :account_name,
>> :scope => :year
>>
>> before_create :set_year
>>
>> (etc etc etc...)
>>
>> protected
>> def set_year
>> self.year = <whatever is appropriate>
>> end
>> #-------------------------------------------------
>>
>> I want to allow account names to repeat, but not within years.
>>
>> Is there a clean way to get this behavior without having to mess
>> with the constructor? Messing with the constructor just for this
>> when it's called so often in other situations seems ham-fisted.
>>
>> Thanks much!
>>
>> -glenn
>>
>
>
>
--~--~---------~--~----~------------~-------~--~----~
SD Ruby mailing list
[email protected]
http://groups.google.com/group/sdruby
-~----------~----~----~----~------~----~------~--~---