2017-03-24 6 views
0

の「削除は、」私は全く意識していないよな理由により誤り未定義のメソッド私は認証URLを介してユーザーをリダイレクトしようとしている<a href="https://github.com/gimite/google-drive-ruby/blob/master/doc/authorization.md" rel="nofollow noreferrer">google-drive-ruby</a>宝石を使用して認証していた場合redirect_to

"undefined method 'delete' for #<Addressable::URI:0x0000000d8c1128>"

に戻ります。ここに私のコード:

class UserFormsController < ApplicationController 
    layout 'admin' 
    before_action :set_user_form, only: [:show, :edit, :update, :destroy] 
    before_action :g_auth_user 

    # GET /user_forms 
    def index 
    @user_forms = UserForm.all 
    redirect_to @auth_url 
    end 

[...] 

    def g_auth_user 
    credentials = Google::Auth::UserRefreshCredentials.new(
     client_id: "506139056270-iu34antv0ebbouo332p55gem8vj5uj9b.apps.googleusercontent.com", 
     client_secret: "CNc0okSHqFBsmLSeZgzDhyHJ", 
     scope: [ 
     "https://www.googleapis.com/auth/drive", 
     "https://spreadsheets.google.com/feeds/", 
     ], 
     redirect_uri: user_forms_url) 
    @auth_url = credentials.authorization_uri 
    end 

[...] 

助けが素晴らしいだろう。ありがとう!それは、そのメソッドによって返されたURIの構造のように見える

+0

あなたはそのエラーのは、このコードではなく、あなたのビューでトリガされてもよいですか?バックトレースをより注意深くチェックしてください。 – tadman

+0

@tadmanは私の経験不足を許していますが、あなたが何を意味するのか、私が見つけることを期待しているのかは分かりません。あなたは詳しく説明できますか? –

+0

そのエラーは完全なメッセージの1行に過ぎません。通常、Rubyは、それにつながる一連のイベントを通してあなたを導きます。これは、他の言語ではバックトレースまたはスタックトレースと呼ばれます。そのリストのコードの最後の行は、問題を探し始める場所です。私はここであなたのコードで 'delete'を呼び出すことはありませんので、おそらくビューのように他の場所に作成されています。 – tadman

答えて

2

はそうあなたが文字列に変換することにより、それを修正することができるはずredirec_toと互換性がありません:

redirect_to @auth_url.to_s 
0

+1、私は同じエラーを持っていたとしますそれを解く「to_s」、回答#tadman

に感謝だから正しい答えは次のとおりです。

redirect_to @auth_url.to_s 
関連する問題