2

我在我的应用程序中使用请求参数从其他网站传输信息。请求如下所示:

myapp.com/users/sign_up?customer=somevalue

一旦用户未登录,一切正常,我可以在我的注册控制器中检索这些参数(我已经覆盖了 Devise 的控制器)。我让他们使用:

customer_key = params[:customer]

一旦用户已经登录,我就无法检索这些参数,我怀疑 Devise 已经为我修改了它们。“登录后”参数是:

{"action"=>"show", "controller"=>"users", "id"=>"my-user"}

(这是从我的用户控制器中获取的)

我的问题是 - 当用户登录到我的用户控制器时,如何检索这些参数?

4

1 回答 1

1

您必须require_no_authentication在覆盖的注册控制器中创建该方法。

Devise::Registration控制器在过滤器之前有这个prepend_before_filter :require_no_authentication, :only => [ :new, :create, :cancel ]

检查用户是否登录,如果他是,它会重定向到after_sign_in_path

如此处所述

https://github.com/plataformatec/devise/blob/master/app/controllers/devise_controller.rb#L96

祝你好运!

于 2013-08-20T10:58:53.877 回答