我们知道Rails 5添加了ApplicationRecord
作为一个抽象类,它被我们的模型(ActiveRecord)所继承。
但基本上,我认为我们使用ApplicationRecord
完成的每个技术需求也同样可以使用ActiveRecord::Base
来完成。例如:
module MyFeatures
def do_something
puts "Doing something"
end
end
class ApplicationRecord < ActiveRecord::Base
include MyFeatures
self.abstract_class = true
end
现在每个模型都将附加MyFeatures
的行为。但是我们也可以在Rails 4中实现这一点:
ActiveRecord::Base.include(MyFeatures)
那么使用ApplicationRecord
有什么好处呢?你认为添加ApplicationRecord
是必要的吗?
ActiveRecord::Base
的宝石现在都会出现问题吗?如果是这样的话,那将会产生大量的维护和技术债务。 - Kelsey Hannan