But what if I would like to have usernames with increasing prefix this 
"test", "1test", "2test"

W dniu poniedziałek, 9 lipca 2012 15:35:32 UTC+2 użytkownik tom 
meinlschmidt napisał:
>
> If you have your validations set, you can use something like 
>
> in User model: 
> scope :without_username, where(:username => nil) 
> validates :username, :uniqueness => true, :presence => false 
>
> and then use 
> users = User.without_username 
>
> users.each do |user| 
>  username = user.email.split(/@/).first 
>  user.username = username 
>  while !user.valid? 
>    user.username+=rand(10).to_s 
>  end 
>  user.save 
> end 
>
> tom 
>
> On Jul 9, 2012, at 15:01 , regedarek wrote: 
>
> > I would like to create rake task to set the username of all users' 
> without a username to the part before the '@' in their email address. So if 
> my email is [email protected], my username should become test. If it's not 
> available, prepend it by a number (1). 
> > 
> > So i have problem witch checking uniqness of username. Code below isn`t 
> working after second loop ex: when i have three emails: [email protected], 
> [email protected], [email protected] username for [email protected] will be empty. 
> > 
> > I have of course uniqness validation for username in User model. 
> > 
> >     desc "Set username of all users wihout a username" 
> >     task set_username_of_all_users: :environment do 
> >       users_without_username = User.select{ |u| !u.username? } 
> >       users_without_username.each do |user| 
> >         username = user.email.split('@').first 
> >         if User.find_by_username(username).blank? 
> >           user.username = username 
> >           user.save 
> >         else 
> >           User.find_by_username(username).each_with_index do |u, index| 
> >             u.username = username.insert(0, index) 
> >             u.save 
> >           end 
> >         end 
> >       end 
> >     end 
> > 
> > Other ideas are in Gist: https://gist.github.com/3067635#comments 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "Ruby on Rails: Talk" group. 
> > To view this discussion on the web visit 
> https://groups.google.com/d/msg/rubyonrails-talk/-/4tkg3bBKTbcJ. 
> > 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-US. 
>
> -- 
> ===============================================================================
>  
>
> Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache 
>
> www.meinlschmidt.com  www.maxwellrender.cz  www.lightgems.cz 
> ===============================================================================
>  
>
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/rubyonrails-talk/-/aKnXNZM24MMJ.
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-US.

Reply via email to