2016-04-21 47 views
0

注意:我沒有使用Devise。重定向到根目錄而不是控制器/編輯密碼重置

我採取一個密碼重置動作和我有以下編輯操作的控制器Password_Resets:

def edit 
    end 

    def update 
    puts "I'm in the update!!" 
    if params[:user][:password].empty? 
     @user.errors.add(:password, "can't be empty") 
     render 'edit' 
    elsif @user.update_attributes(user_params) 
     log_in @user 
     flash[:success] = "Password has been reset." 
     redirect_to recipes_url 
    else 
     render 'edit' 
    end 
    end 

當我試圖通過它來運行,我把相應的URL和我以下回應:

Started GET "/password_resets/igArFj9sYLt1J6k6Y2BjSg/edit?email=maggie%40example.com" for ::1 at 2016-04-20 21:49:58 -0500 
Processing by PasswordResetsController#edit as HTML 
    Parameters: {"email"=>"[email protected]", "id"=>"igArFj9sYLt1J6k6Y2BjSg"} 
    User Load (0.1ms) SELECT "users".* FROM "users" WHERE "users"."email" = ? LIMIT 1 [["email", "[email protected]"]] 
Redirected to http://localhost:3000/ 
Filter chain halted as :valid_user rendered or redirected 
Completed 302 Found in 2ms (ActiveRecord: 0.1ms) 

爲什麼重定向到本地主機而不是視圖app/views/password_resets/edit?我似乎無法找出一個好方法來「調試」或看看發生了什麼。

注:我讓這個視圖非常簡單,以確保它不重定向。

這是視圖應用/視圖/ password_resets /編輯:

<h1>This is my edit view </h1> 

編輯:::解決方案

所以我只是一個白癡。基本上我有一個驗證的用戶命令,用來檢查用戶是否被認證,而用戶不是。因此我需要更多的錯誤處理。

謝謝你!

回答

0

的錯誤是在你的驗證:

Filter chain halted as :valid_user rendered or redirected 

我假設你在你的控制器頂部調用此

0

你可以在你的Web服務器日誌中看到: Filter chain halted as :valid_user rendered or redirected 它的平均您在控制器中有before_filterbefore_action。 這個過濾器只是ruby方法 - def valid_user,很明顯它包含一個重定向條件。 您需要調試此方法。

您可以閱讀更多關於控制器過濾器here

相關問題