This seems to work in Rails 2.1.1, which version are you running?
Perhaps you can try using a returning block
user = returning User.find_or_create_by_name('bob') do |u|
u.password = '1234'
end
On Oct 24, 9:32 am, Ken Miller <[EMAIL PROTECTED]> wrote:
> when you use a find_or_create_ automatic method with an initializer
> block, the block isn't called on the first run, but is called on
> subsequent runs:
>
> u = User.find_or_create_by_name('bob') { |new_user| new_user.password
> = '1234' }
> u.name
>
> >> "bob"
> u.password
> >> nil
>
> u2 = User.find_or_create_by_name('billy') { |new_user|
> new_user.password = '1234' }
> u2.name
>
> >> 'billy'
> u2.password
> >> '1234'
>
> This appears to have been around for a while.
>
> Bug filed (with patch) here:
>
> http://rails.lighthouseapp.com/projects/8994/tickets/1224-find_or_cre...
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Core" 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-core?hl=en
-~----------~----~----~----~------~----~------~--~---