ActiveRecord Schema中的特殊案例模型(Rails)

时间:2014-06-16 07:39:06

标签: ruby-on-rails ruby activerecord database-design

我有一个使用标记模型构建的项目,可以引用三种不同的模型:艺术家,文章,事件。我已通过has_many through:将每个模型与标记模型相关联。我有两个问题;两者都相互关联:

  1. 我有5种“默认”方法,我希望能够从标记控制器/模型中轻松调用:流行,即将推出,活动,文章和艺术家。每种方法的设计都与其名称完全相同。问题在于这些方法本质上是一种查询。如何维护一致的模式,其中我有许多标记模型中的5个需要一个特殊属性(让我们称之为内容),随后应该调用适当的方法?

  2. 当调用任何一个标记模型时,它将返回(在其内容属性中)前面指定的3个模型的数组。除了在每个模型中添加一个方法,其中包含模型的本地化描述,然后调用该type方法以匹配其他地方的另一个硬编码字符串,还有其他选择吗?我不喜欢我刚刚描述的实现如何要求我硬编码值。伊克。

  3. 我是Ruby on Rails的新手,所以如果这是一个明显的解决方案我会道歉。然而,我花了一周的时间研究如何解决这个我正试图解决的复合问题。任何意见都表示赞赏!

1 个答案:

答案 0 :(得分:1)

据我所知,你需要一个多态关联。因为标签可以应用于不同的模型,所以线索是通过将它们标记为:在与标签的关联上可标记的多态方式来处理所有这些模型。

我会使用流行的acts_as_taggable_on宝石。