gpt4 book ai didi

ruby-on-rails - 跨模型共享 ActiveRecord::Base 枚举

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:34 27 4
gpt4 key购买 nike

我有两个模型

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

关于ruby-on-rails - 跨模型共享 ActiveRecord::Base 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31489530/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com