我正在研究应用程序,我刚刚发现ApplicationController
中有一条注释掉的行看起来很重要。
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: :null_session
⋮
之所以到达这一点,是因为我正在跟踪一个堆栈跟踪记录(对于生产错误,我不知道如何重现),该跟踪记录显示了ActionPack中的一个错误:
NoMethodError (undefined method `new' for nil:NilClass)
错误来自此方法定义中的语句:
def handle_unverified_request
forgery_protection_strategy.new(self).handle_unverified_request
end
所以,我的问题分为两个部分:
版本:
Ruby(2.2.4p230)
Rails(4.0.13)
ActionPack(4.0.13)