这是我所做的:
在app/controllers/application_controller.rb
中,添加如下一行:
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_action :authenticate_user!
# ...
end
这将强制authenticate_user!
在任何操作之前运行。
如果您有一些不需要身份验证的操作/控制器,您可以将以下行添加到它们的控制器文件中:
class StaticPagesController < ApplicationController
prepend_before_filter :require_no_authentication
# ...
end
该require_no_authentication
函数还接受一个可选参数,一个名为 的数组only
,其中包含不需要身份验证的操作列表。
nb 我知道这是高级死灵术,但这个问题没有答案,我花了很多时间寻找正确的答案。