Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Desive时,如何将用户重定向到注册路径而不是登录路径_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 使用Desive时,如何将用户重定向到注册路径而不是登录路径

Ruby on rails 使用Desive时,如何将用户重定向到注册路径而不是登录路径,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我尝试过覆盖authenticate_user方法,但它似乎会导致无限循环除非您知道自己在做什么,否则不应该弄乱designe文件。你应该使用 如果当前用户 某物 其他的 链接到“加入”,新用户注册路径除非您知道自己在做什么,否则不应该弄乱设计文件。你应该使用 if user.activated? && user.authenticated?(:activation, params[:id]) user.activate log_in user

我尝试过覆盖authenticate_user方法,但它似乎会导致无限循环

除非您知道自己在做什么,否则不应该弄乱designe文件。你应该使用

如果当前用户
某物
其他的

链接到“加入”,新用户注册路径

除非您知道自己在做什么,否则不应该弄乱设计文件。你应该使用

    if user.activated? && user.authenticated?(:activation, params[:id])
      user.activate
      log_in user
      flash[:success] = "Account activated!"
      redirect_to user
    else
      flash[:danger] = "Invalid activation link"
      redirect_to root_url
    end
如果当前用户
某物
其他的

链接到“加入”,新用户注册路径

您可以按如下方式轻松完成此操作:

    if user.activated? && user.authenticated?(:activation, params[:id])
      user.activate
      log_in user
      flash[:success] = "Account activated!"
      redirect_to user
    else
      flash[:danger] = "Invalid activation link"
      redirect_to root_url
    end
添加名为
authenticate\u user的方法
,如果用户未登录,则覆盖将用户重定向到注册路径的默认方法

应用程序控制器:

class ApplicationController < ActionController::Base

  before_action :authenticate_user!, :unless => :devise_controller? # This prevent the infinite redirects.

    protected
    def authenticate_user!
      if !current_user
          redirect_to new_user_registration_path    
      end
    end
end
class ApplicationController:设计控制器?#这可以防止无限重定向。
受保护的
def认证用户!
如果!当前用户
重定向到新用户注册路径
结束
结束
结束

您可以通过以下方式轻松完成此操作:

添加名为
authenticate\u user的方法
,如果用户未登录,则覆盖将用户重定向到注册路径的默认方法

应用程序控制器:

class ApplicationController < ActionController::Base

  before_action :authenticate_user!, :unless => :devise_controller? # This prevent the infinite redirects.

    protected
    def authenticate_user!
      if !current_user
          redirect_to new_user_registration_path    
      end
    end
end
class ApplicationController:设计控制器?#这可以防止无限重定向。
受保护的
def认证用户!
如果!当前用户
重定向到新用户注册路径
结束
结束
结束

你能详细说明一下吗?在什么情况下,您希望将用户重定向到注册路径?能否详细说明?在什么情况下,您希望将用户重定向到注册路径?如果我希望它是全局的,该怎么办?@Edward我编辑了我的答案,使其成为全局的,检查它。如果我希望它是全局的,该怎么办?@Edward我编辑了我的答案,使其成为全局的,检查它。这完全覆盖了authenticate\u user方法,但不会与实际的方法发生冲突。这就是重点。本质上,它做同样的事情,而不涉及设计文件。这是我的思路。这完全覆盖了authenticate_user方法,但它不会影响实际的方法。这就是重点。本质上,它做同样的事情,而不涉及设计文件。那是我的思路。