我有呼叫控制器的簡單方法Ruby on Rails的redirect_to的外部URL調用該方法兩次
<p><%= link_to "Log In external app", login_with_external_app_path %></p>
控制器確實的圖:
def login_with_external_app
params = {secret_key: ENV['SECRET_APP_KEY'], scope: 'x:y' }
uri = URI('https://an_app.com/login/oauth/authorize')
uri.query = params.to_query
redirect_to(uri.to_s)
end
方法login_with_external_app被稱爲兩次。第一個是當我點擊我的視圖的按鈕後,點擊代碼片段正確執行後,它不會正確重定向到uri(控制檯顯示應用程序找到了URL),然後調用該方法再次,它重新導向罰款。
控制檯日誌:
發起者SessionsController#login_with_external_app GET 「/ login_with_external_app」 爲:: 1在2016年12月3日11點23分11秒 -0300處理作爲HTML
重定向到 https://an_app.com/login/oauth/authorize?secret_key=123456&scope=x%3y 完成302發現在2824ms(ActiveRecord的:0.0ms)
發起者GET 「/ login_with_external_app」 爲:: 1在2016年12月3日十一點23分15秒 -0300處理SessionsController#login_with_external_app作爲HTML
我沒有把方法放在回調方法中。 –
嘗試在該方法中使用binding.pry。使用'next'關鍵字,以便您可以知道代碼正在運行的確切方式 –
我做到了,問題似乎出現在gem中,我調試了gem,並且調用了兩次。 –