它是来自rails / init.rb下act_as_audited插件1.1.1的代码片段
为什么使用此代码?欢迎任何一般性解释。
if defined?(ActionController) and defined?(ActionController::Base)
答案 0 :(得分:4)
acts_as_audited旨在与普通的ActiveRecord一起使用。正如您可以在Rails之外使用ActiveRecord,例如在Sinatra应用程序中,如果宝石没有与Rails绑定,那将会很有帮助。
这正是这里发生的事情:作者试图检测它们是否在Rails下运行(或者更具体地说,如果应用程序使用ActionController进行路由,这是Rails的一部分)来加载其他特定于Rails的功能。
对于不使用ActionController(或Rails)的应用程序,gem仍然可用。
他们似乎在以后的版本中删除了此兼容层。这个,acts_as_audited的继承者(简称为audited)现在取决于Rails。