Add gem to the Gemfile:
gem 'devise'
Then run the bundle install
command.
Use command $ rails generate devise:install
to generate required configuration file.
Set up the default URL options for the Devise mailer in each environment In development environment add this line:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
to your config/environments/development.rb
similarly in production this edit config/environments/production.rb
file and add
config.action_mailer.default_url_options = { host: 'your-site-url'}
Then create a model using:$ rails generate devise USER
Where USER
is the class name for which you want to implement authentication.
Finally, run: rake db:migrate
and you are all set.
If you need to configure your views, you can use the rails generate devise:views
generator that will copy all views to your application. Then you can edit them as desired.
If you have more than one Devise model in your application (for example User and Admin), you will notice that Devise uses the same views for all models. Devise offers an easy way to customize views. Set config.scoped_views = true
inside the config/initializers/devise.rb
file.
You can also use the generator to create scoped views: rails generate devise:views users
If you would like to generate only a few sets of views, such as the ones for the registerable and confirmable module use the -v flag: rails generate devise:views -v registrations confirmations