我有2个模特
class Author < ActiveRecord::Base
enum state: [:draft, :ready]
end
class Creation < ActiveRecord::Base
enum state: [:draft, :ready]
end
正如您所看到的,两个模型都定义了状态枚举。我想摆脱这种重复,并在其他地方移动状态。
我该如何做到这一点,同时保留所有有用的东西,如Author.ready
,并在数据库中的整数和代码中的字符串之间自动转换。
答案 0 :(得分:1)
您可以使用下面的concerns
。
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