Gemfileに必要なモジュールを記述する。
■Gemfile
[ruby]
gem ‘devise’
gem ‘omniauth’
gem ‘omniauth-twitter’
gem ‘omniauth-facebook’
[/ruby]
Deviseのインストール。
[bash]
$ rails g devise:install
Running via Spring preloader in process 3689
Expected string default value for ‘–jbuilder’; got true (boolean)
create config/initializers/devise.rb
create config/locales/devise.en.yml
[/bash]
deviseの設定ファイルが生成される。
■config/initializer/devise.rb
[ruby]
Devise.setup do |config|
・・・
end
[/ruby]
■db/migrate/YYYYMMDDhhmmss_add_devise_to_users.rb
[ruby]
class AddDeviseToUsers < ActiveRecord::Migration[5.0]
・・・
end
[/ruby]
Userモデルを作成する。
[bash]
$ rails g devise User
Running via Spring preloader in process 3757
Expected string default value for ‘–jbuilder’; got true (boolean)
invoke active_record
identical db/migrate/20170130065955_add_devise_to_users.rb
insert app/models/user.rb
route devise_for :users
[/bash]
DBのマイグレーションを実行。
[bash]
$ rails db:migrate
== 20170130065955 AddDeviseToUsers: migrating =================================
— change_table(:users)
-> 0.3352s
— add_index(:users, :email, {:unique=>true})
-> 0.0278s
— add_index(:users, :reset_password_token, {:unique=>true})
-> 0.0336s
== 20170130065955 AddDeviseToUsers: migrated (0.3970s) ========================
[/bash]
■ハマった点。
下記のエラーに悩まされた。
上記を順番通りに実行すれば、問題ないはず。
[bash]
dynamic_matchers.rb:21:in `method_missing’: undefined method `devise’ for User
[/bash]