【发布时间】:2016-06-23 19:00:23
【问题描述】:
我正在创建一个具有多个多对多关系的应用。这是一个例子:一个应用程序用户将拥有多种技能。同时,很多job_posts都会有几个技能。我希望能够重用技能模型,这样我就可以拥有这样的东西:
User----has_many----->Skill(smart)<---has_many----job_posting
^
|
has_many
|
Application
所以你看,我希望基本上能够创建一个技能(在这个例子中:“智能”),然后使用 has_many 关系从几个不同的模型中引用该技能。
最好的方法是什么?我想避免创建一堆额外的模型来处理关系,因为我的应用中有几个这样的设置。
最后,能够做这样的事情会很好: myUser.skills.add(Skill.find(1)) myCompany.skills.add(Skill.find(1))...
附: 我知道没有技能.add() 这样的东西。如果您有建设性的内容,请建议我可以使用什么。谢谢:)
P.P.S 我使用 mysql 作为我的数据库
【问题讨论】:
-
您需要设置一个数据库表来保存关系信息。研究使用
has_many :through -
嗯,这就是我希望避免的:/,特别是因为我必须为每个这样的设置为每个关系类型制作一个
-
你认为它还能怎么做?您可以采取低效的路线,并通过到处添加外键来避免关系表。
标签: ruby-on-rails ruby activerecord has-many