我有两个模型
class Author < ActiveRecord::Base
enum state: [:draft, :ready]
end
class Creation < ActiveRecord::Base
enum state: [:draft, :ready]
end
如您所见,两个模型都定义了 state 枚举。我想摆脱这种重复并将 state 移到其他地方。
我该怎么做,同时保留所有有用的东西,例如 Author.ready
和数据库中整数与代码中字符串之间的自动转换。
您可以像下面这样使用关注点
。
module SimpleState
extend ActiveSupport::Concern
included do
enum state: [:draft, :ready]
end
end
然后将其包含在您的模型中,如下所示
#author.rb
class Author < ActiveRecord::Base
include SimpleState
end
#creation.rb
class Creation < ActiveRecord::Base
include SimpleState
end
我是一名优秀的程序员,十分优秀!