我有一個簡單的應用程式控制器,我對它的行為感到困惑。它只是不會讓我連接到登錄頁面
class ApplicationController < ActionController::Base
before_action :do_atthestart
protected
def do_atthestart
redirect_to login_path
end
end
一旦點擊“redirect_to login_path”,我就會在瀏覽器上收到錯誤訊息
此頁面無法正常作業 重定向您太??多次
在日志上我得到以下資訊
Started GET "/login" for .................... SessionsController#new 作為 HTML Redirected to 處理 http://127.0.0.1:3000/login過濾器鏈停止,因為 :do_atthestart 呈現或重定向 已完成 302 在 3 毫秒內找到(活動記錄:0.0 毫秒 | 分配:282)
有誰知道如何超越它?
先感謝您
uj5u.com熱心網友回復:
該before_action是創造一個無限回圈。
它適用于繼承自 的任何控制器中的任何操作ApplicationController,包括SessionsController#new. 回呼重定向到那個動作,然后呼叫回呼,它重定向到那個動作,依此類推。
一種技術是before_action在每個控制器中加載。然后,在您的會話控制器中,您可以將回呼函式排除在外:
class SessionsController < ApplicationController
before_action :do_atthestart, except: :new
end
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352020.html
標籤:红宝石轨道
