rails模型的数组属性是错误的吗?

时间:2014-04-17 10:45:44

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

我的导轨模型可以有三个值a,b和c。

应该可以不分配任何一个,一个,两个或全部。

我的想法是我可以将此属性用作字符串,并将其序列化以将其用作数组(例如[a,c]或[]或[a,b,c]。 使用一些强有力的验证,在我看来逻辑方式,我知道rails可以处理它。

无论如何,我到处都读到数组属性是错误的选择,我应该使用has_many关系。 是否有充分理由建立一个has_many关系,或者仅仅a,b和c是否过度杀伤?

另一种选择是在我的表中添加三个布尔属性(a:boolean,b:boolean,c:boolean)并处理该逻辑。

我的方案最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

Rails 4附带了对postgresql的数组数据类型的本机支持。因此,如果您使用的是postgresql,那么您应该使用数组数据类型而不是使用has_many关系创建另一个模型。尽管数组数据类型不如整数或字符串快,但考虑到必须执行的连接,它将为您带来一些性能改进。 / p>