Rails 范围设计因 InvalidAuthenticityToken 而失败
Rails devise with scope fails with InvalidAuthenticityToken
我们正在使用 Rails 4.2.1 和最新版本的 Devise (3.4.1),但我相信其他版本也会出现同样的错误。
自从我们将范围添加到 routes.rb:
scope '/admin' do
root to: "places#index"
devise_for :users, controllers: { registrations: "users/registrations" }
...
Devise 无法登录或退出,出现以下错误:
ActionController::InvalidAuthenticityToken at /admin/users/sign_out.
只要我们移除范围,一切都完美无缺。
我们尝试通过设计使用自定义路由,但没有任何帮助。
registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
before_action :configure_permitted_parameters
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up).push(:first_name, :last_name, :organization)
end
end
您应该尝试按如下方式定义您的设计范围:
devise_for :users
devise_scope :user do
scope '/admin' do
get "/your_route" ...
end
end
其余路由分别应用“/admin”范围。
我们正在使用 Rails 4.2.1 和最新版本的 Devise (3.4.1),但我相信其他版本也会出现同样的错误。
自从我们将范围添加到 routes.rb:
scope '/admin' do
root to: "places#index"
devise_for :users, controllers: { registrations: "users/registrations" }
...
Devise 无法登录或退出,出现以下错误:
ActionController::InvalidAuthenticityToken at /admin/users/sign_out.
只要我们移除范围,一切都完美无缺。
我们尝试通过设计使用自定义路由,但没有任何帮助。
registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
before_action :configure_permitted_parameters
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up).push(:first_name, :last_name, :organization)
end
end
您应该尝试按如下方式定义您的设计范围:
devise_for :users
devise_scope :user do
scope '/admin' do
get "/your_route" ...
end
end
其余路由分别应用“/admin”范围。