我想在几个模型之间分享一些行为。至少有两种方法:
1)ActiveSupport::Concern
:
module Contentable
extend ActiveSupport::Concern
module InstanceMethods
#some shared behavior(validations, callbacks, etc)
end
end
class Content < ActiveRecord::Base
include Contentable
end
2)模型(类)继承:
class Content < ActiveRecord::Base
#some shared behavior(validations, callbacks, etc)
end
class Article < Content
end
我看到的第一个的唯一优势是你可以包含任意数量的模块 两种方法都有其他优点/缺点吗?