Rails表与ENUM列的关联

时间:2012-09-10 11:06:01

标签: mysql ruby-on-rails activerecord

给定表uploads,其中包含4个不同的应用和用户之间的关系:

field    type
dogTag   int (foreign key to dvd)
app      enum
uploader int (foreign key to user)
mod      string
...

dvds

dogTag  int (primary key)
title   string
...

users

id    int (primary key)
...

如果依赖于ENUM列,如何在Rails中正确构建dvds表和uploads表之间的模型关系?

使用sql我只需:

JOIN uploads ON uploads.dogTag = dvds.dogTag
WHERE uploads.app = 'dvd'

但是不知道如何在Rails中创建这种关系,而且还没有找到很多关于此的信息。

由于

2 个答案:

答案 0 :(得分:0)

我对如何与枚举列创建关系没有太多想法,但如果它是您的应用中的四个模型,只有一个上传模型,那么您可以使用polymorphic association,ryan很棒{{3 }}

答案 1 :(得分:0)

您可以重新组织数据库以使枚举类型成为查找表,您可以创建一个非持久模型来实现它。

事情是,如果你是从模型开始而不是从数据库开始的话,你就不会在mysql的枚举类型附近找到任何东西,这就是为什么你很难找到很多东西,你已经去了它的低音。

我的建议摆脱它......