2016-04-21 57 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