我有一个模型BusinessLog
:
class BusinessLog < ActiveRecord::Base
include BusinessLogging
default_scope { where(business_id: Business.current.id) }
end
它在默认范围内执行操作,并包含一个问题BusinessLog
:
class BusinessLog < ActiveRecord::Base
module BusinessLogging
extend ActiveSupport::Concern
module ClassMethods
def log!(options)
create! business_id: options[:business_id], user_id: options[:user_id], action: options[:action]
end
end
end
end
这个log!
方法是由sidekiq
工作者调用的。最终我发现由于BusinessLog
默认范围,我无法登录多个业务。所以我删除了BusinessLog
默认范围,但它被卡住了。
每当我尝试通过模块执行操作时(例如:BusinessLog.log!(options)
),它仍然使用默认范围(即使我已经删除它)。但是当我在模型中执行操作时(例如:BusinessLog.create!(options)
),它按预期工作,没有 - 已经消失的默认范围。
我尝试了很多工作,但只有一件事有效:重命名模块,一切都完美无缺。
值得一提的是,这恰好发生在我的生产环境中。
有没有人经历过这个?我应该把它作为一个问题发布在github上吗?我怎么能提供关于这个-bug-的更多信息? 我正在使用Rails 4.0.1和ruby 2.0.0