もっと仲良くなりましょうdeviseさん!
みんな大好きdeviseさんともっと仲良くなりたい
今日は基本的な使い方とよく起こりうるエラーを組み合わせてまとめます
deviseとは
Railsを扱う場合、ログインまわりの機能はdeviseというGemを使用することで簡単に実装できます!これを使わない手はない。
deviseのGemをインストールしてみよう!
手順は以下です
1. Gemファイルの最終行に「gem "devise"」を追記する
2. ターミナルにてカレントディレクトリを確認した後、$ bundle installコマンドを実行する
3. $ rails s コマンドでサーバーを立ち上げ直す
ここでよく見かけるエラー1
Gemをインストールした後は、サーバーを立ち上げ直さなければいけません!なぜならインストールしたGemは、サーバーを立ち上げたときに反映されるからです。
つまりサーバーの立ち上げを行わない場合は、エラーが発生してしまいます
例えば、deviseをインストールしているのにも関わらず、No Method Errorでundefinde method "usder_signed_in?"が出てきてしまう時などです。注意しましょう!
deviseの設定ファイルを作成しよう!
設定ファイルを作成するためには、$ rails g devise:installコマンドを実行します
作成されるファイルは以下です!
- config/initializers/devise.rb
- config/locales/devise.en.yml
ここでよく見かけるエラー2
$ rails g devise:installコマンドを実行せずに、次の手順"Userモデルを作成するためのコマンド $ rails g devise userの実行"に進んでしまうと、エラーが発生します!
それが、ターミナルでrailsを含むコマンドを打とうとするときです。
例えば、$rails routesを実行すると・・・
NoMethodError: undefined method 'devise' for User(call 'User.connection' to establish a connection)というようなエラー文が表示されます
でも大丈夫!
こんな時は、以下の手順で解決しましょう
1. config/routes.rbファイルに自動的に記述された「devise_for :users」をコメントアウトする
2. ターミナルにて$ rails g devise:installコマンドを実行する
これで解決できるはずです!
アカウントを作成するためのUserモデルを作ろう!
手順は以下です
1. $ rails g devise userコマンドを実行
2. $ rails db:migrateコマンドで、マイグレートを実行
ここではマイグレーションファイルが作成されることに注目しましょう
- app/models/user.rb →Userモデル
- db/migrate/2014XXXXXXXXXX_devise_create_users.rb →ログイン機能に必要なカラムが追加されるマイグレーションファイル
- test/fixtures/users.yml
- test/models/user_test.rb
また、$ rails g devise userコマンドを実行することで、config/routes.rbファイルにdevise用のルーティング(= devise_for :users )が自動で追加されることもポイントです
ここでよく見かけるエラー3
よーし!ここで一度サーバーを立ち上げなおしてみよう!そう思って実行したところ、PendingMigrationErrorが出てしまった...なんてことありませんか??
でも焦らない!そんな時は以下の方法で解決しましょう
1. migrate の実行がされているのか確認
→$ rails db:migrateコマンドを実行し忘れていないか
2. おっと、migrateを実行しようとしたら、次は新しいエラーが出たぞ!Myaql2::Error:...
→$rails db:migrate:statusコマンドでステータスを確認してみる
3. down状態のファイルが見つかった!
→間違って2度$ rails g devise userコマンドを実行してしまった可能性あり!
→down状態のAdd devise to usersというマイグレーションファイルを削除する
これで解決だ!!
まとめ
私たちがPCの中の構造まで理解せずとも使用できるように、deviseは非常に便利な反面、少し複雑な構造をしているようですね!
しかしログイン機能の実装は、
1. deviseのGemをインストール
2. deviseの設定ファイルを作成
3. deviseコマンドを使ったUserモデルの作成
以上の手順を踏めば簡単に行うこともわかりました
Author And Source
この問題について(もっと仲良くなりましょうdeviseさん!), 我々は、より多くの情報をここで見つけました https://qiita.com/KieWatanabe/items/64cc0905b4890389d817著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .