質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

2232閲覧

deviseとomniauthを使ったGoogle認証でエラーが起きて困っています。

cryptoriman

総合スコア11

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2018/08/07 12:34

編集2018/08/08 12:19

↓下記サイトを参考に、deviseとomniauthを使ってgoogle認証を作ろうとしていたところ画像①のようなエラーが出てしまい解決できず困っております。
Qiita:deviseとomniauthを使ったGoogle認証の流れ

具体的には、rails sで「Sign in with Google」をクリックし、アカウント選択の画面(画像②)でGmailアドレスをクリックすると画像①のエラーが出てしまいます。解決策があれば教えていただけると助かります。

ruby 2.3.1
rails 5.0.7

▽画像①
画像①
▽画像②
画像②

※追記
依頼があったので追記致します。

bin/rails routes の実行結果を質問欄に追記できますか?

▽画像③
画像③

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

takahashim

2018/08/07 14:19

bin/rails routes の実行結果を質問欄に追記できますか?
cryptoriman

2018/08/08 12:15

お待たせしてしまい申し訳ありません。先ほど追記いたしましたが、上記の内容でよろしいでしょうか。
takahashim

2018/08/08 12:47

ありがとうございます。こちらで回答します。
guest

回答1

0

ベストアンサー

エラーの内容についてですが、omniauth_authorize_pathというメソッドがない(NoMethodError)、というものですよね。「_path」で終わっているということはRailsがRoutingと紐つけて生成するメソッド名かと思われました。

というわけで、bin/rails routes (またはrake routes)の結果と照らし合わせて調べるわけですが、これの一番左の並びがxxx_pathのxxxにあたる部分になります。
確かにこの中にomniauth_authorizeというのはありません。
代わりにあるのが「user_google_oauth2_omniauth_authorize」なので、「user_google_oauth2_omniauth_authorize_path」が正しいメソッド名ではないかと思われます。
実際、https://qiita.com/s-show/items/9de77de4eb480f779aa4に書かれているのもこのメソッド名ですよね。

というわけで、ここを書き換えてみるとどうでしょうか。(別途どこかでomniauth_authorize_pathというメソッドを定義していてるんであればすみません。)

※それと質問される方へのお願いですが、エラーメッセージやコンソールの出力結果はできるだけ質問欄にテキストで(<code>コードの挿入機能を使って)書いていただけるとありがたいです。回答する方でも検索したり回答したりする際にコピー&ペーストを使えると回答しやすいのでした。

投稿2018/08/08 14:33

takahashim

総合スコア1877

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cryptoriman

2018/08/08 15:19

ご回答ありがとうございます。ご指摘の通りだと昨日質問後調べながら感じておりました。 書き換えたほうがよいファイルはエラー文を見るにgem deviseの「app/views/devise/shared/_links.html.erb 」のようです。 そのためgithubからdeviseのファイルをダウンロードし、該当箇所を書き換えたのですが、ローカル内のgemファイルを「gem install --local devise」する事がうまくできずにいます(ERROR: Could not find a valid gem 'devise' (>= 0) in any repositoryと出てしまう)。 >※それと質問される方へのお願いですが、 大変失礼いたしました。今後は回答者様のことも踏まえて質問文を書くように致します。
takahashim

2018/08/09 03:55

う、Railsのプロジェクトのソースではなくdeviseのgemの中のソースだったんですね。それは失礼しました。 Deviseのviewのカスタマイズについては、 https://github.com/plataformatec/devise#configuring-views にあるように、 rails generate devise:views とか rails generate devise:views users などとやるのですが、今回のような例でエラーになるのは別の問題がありそうなので詳しく調べてみないと分からなさそうです。
cryptoriman

2018/08/11 17:29

返信が遅くなり申し訳ありません。 私のほうでももう少し調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問