As you said, you can make a field unique adding uniqueness validation You don't need to run migrations. (Im supposing that you ran migrations in order to create the User model/table with email field before)
You need to add this on your model
class User < ActiveRecord::Base
validates :email, uniqueness: true # :email makes reference to the user's email attribute
end
To test this. Open you console. (rails c on terminal) Then you can create a user:
User.create! email: "some@mail.com"
Then, do this for second time:
User.create! email: "some@mail.com"
You will see a validation error
ActiveRecord::RecordInvalid: Validation failed: Email has already been taken
If you execute create instead create! you won't see the Exception. Be careful with that