On Oct 16, 4:23 pm, Colin Law <[email protected]> wrote: > On 16 October 2011 11:27, Hesham <[email protected]> wrote: > > > > > > > > > > > > > On Oct 16, 11:49 am, Colin Law <[email protected]> wrote: > >> On 16 October 2011 05:35, Hesham <[email protected]> wrote: > > >> > I have the following class in a Rails 3.1.1 app: > > >> > class User < ActiveRecord::Base > > >> > attr_accessible :email, :password, :password_confirmation, :remember_me, > >> > :username, :admin, :moderator, :bio > >> > validates_presence_of :username > >> > validates_uniqueness_of :username, :case_sensitive => false > >> > validates_uniqueness_of :email, :case_sensitive => false > >> > and in my migrations: > > >> > add_index :users, :email, :unique => true > >> > add_index :users, :username, :unique => true > > >> > However, when I try to create two users with duplicate emails or > >> > usernames I get a DB level exception rather than a failing validation: > > >> If you look in the log can you see it doing the query to look for an > >> existing matching email or username? > > >> Colin > > > No, there is no such query, just an insert of the record which is > > producing the exception. > > Can you post the code that does the save? The create method is actually in the registration controller of Devise.
> Is the model code you have shown above copied/pasted here from the rb file? Yes > It should not make any difference but have you tried removing the case > sensitive parameter? No difference > What happens if you make new records and save from the rails console? Let mw check > > Colin > > > > > > > > > > > > >> > ActiveRecord::RecordNotUnique in RegistrationsController#create > >> > PGError: ERROR: duplicate key value violates unique constraint > >> > "index_users_on_username" > > >> > There are other validations that work perfectly, but why aren't the > >> > uniqueness validations being performed before the DB create? > > >> > -- > >> > 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 > >> > athttp://groups.google.com/group/rubyonrails-talk?hl=en. > > >> -- > >> gplus.to/clanlaw > > > -- > > 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 > > athttp://groups.google.com/group/rubyonrails-talk?hl=en. > > -- > gplus.to/clanlaw -- 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.

