我和一位同事正在讨论这种模式,每个人似乎都有自己的看法。使用类型/代码属性的想法似乎是一个非常常见的情况,没有标准化的解决方案。我想知道你的是什么?
假设您在ActiveRecord模型上有非单表继承类型/代码列。你用什么来指定类型和创建访问器,范围等。符号的哈希,代码的哈希,普通的常量或......?
如下所示:
class Listing < ActiveRecord::Base
LISTING_TYPES = {
:sale => 1,
:rent => 2,
:lease => 3,
}
validates :listing_type, :inclusion => {:in => LISTING_TYPES.values}
end
提前致谢。
答案 0 :(得分:1)
我使用simple_enum宝石。
class Listing < ActiveRecord::Base
as_enum :types, {:sale => 0, :rent => 1, :lease => 2}
end
gem会为您创建所有查找程序,以便您可以按类型而不是索引进行查询:
Listing.find_by_type(:sale)