1)enum
可以很好地用于多态关联吗?
class MyModel < ActiveRecord::Base
enum my_status: [:a, :b, :c, :d]
end
class MyModel2 < ActiveRecord::Base
enum my_status: [:aa, :bb, :cc, :dd]
end
有任何缺点吗?
2)我可以覆盖枚举的getter或setter以及如何?
答案 0 :(得分:0)
我假设MyModel
和MyModel2
是两种可能的多态关联类型。
具有不同行为的相同属性名称是多态性擅长的,我没有看到任何理由不使用它。
枚举属性可以像任何属性一样覆盖其getter和setter。
例如:
# Return the status as uppercase
def my_status
super.upcase
end
# Save status as lowercase
def my_status=(new_status)
super(new_status.downcase)
end
枚举宏添加的特殊方法可以用同样的方式覆盖。