【发布时间】:2012-08-22 11:00:01
【问题描述】:
我正在编写一个关于钓鱼的应用程序。
- 我们有一个包含一些物种的
fish模型。 - 我们有一个包含钓鱼点的
location模型。 - 我们有一个
technique模型,其中包含一些钓鱼技术。
每个location可能有多个fish,所以:
class Location < ActiveRecord::Base
has_many :fish
end
每个fish 可以在多个位置找到,所以:
class Fish < ActiveRecord::Base
has_many :locations
end
第三种模型让人头疼,因为每个fish 都可以被多个依赖location 的techniques 捕获。换句话说:fish 和 technique 之间存在类似多对多的关系,每个location 都会发生变化。
我应该使用什么样的关联?
【问题讨论】:
-
技术和鱼有关系还是只是位置和技术的关系。你能举个更准确的例子吗?
-
当然!我想钓 SHARKS(鱼),在 BLUEDEEPS(位置)我可以钓到 SPEARFISHING(技术)或 CASTING(技术)。在 GREENROCK(位置),我可以用 CASTING(技术)或 NET(技术)捕鱼。但在 GREENROCK(位置),我可以通过 SPEARFISHING(技术)钓鲈鱼(鱼)。是的,它是一个关联三角形......
标签: ruby-on-rails activerecord model associations