Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Rails表与枚举列的关联_Mysql_Ruby On Rails_Activerecord - Fatal编程技术网

Mysql Rails表与枚举列的关联

Mysql Rails表与枚举列的关联,mysql,ruby-on-rails,activerecord,Mysql,Ruby On Rails,Activerecord,给定包含4个不同应用程序和用户之间关系的表uploads: field type dogTag int (foreign key to dvd) app enum uploader int (foreign key to user) mod string ... 和表DVD: dogTag int (primary key) title string ... 以及表用户: id int (primary key) ... 如果Rails中的dvds

给定包含4个不同应用程序和用户之间关系的表
uploads

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

dogTag  int (primary key)
title   string
...
以及表
用户

id    int (primary key)
...
如果Rails中的
dvds
表与
uploads
表依赖于枚举列,那么如何正确地构建它们之间的模型关系

使用sql,我只需执行以下操作:

JOIN uploads ON uploads.dogTag = dvds.dogTag
WHERE uploads.app = 'dvd'
但是我不知道如何在Rails中创建这种关系,也没有找到很多关于这方面的信息


谢谢

我不太清楚如何创建与枚举列的关系,但是如果应用程序中的四个模型只有一个上载模型,那么您可以使用多态关联,ryan很好

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

问题是,如果您从模型而不是数据库开始,您就不会接近mysql的枚举类型,这就是为什么您很难找到很多,您已经做到了


我的建议是把它扔掉……

是的,你说得很对。但在事情简单得多的时候,它似乎是一个很好的解决方案:)我必须考虑如何摆脱它,问题是有一堆PHP代码依赖于该模型,我自己从来都不喜欢它们,waaaay的问题太多,好处太少。