儿童包括父记录的STI(Rails 4)

时间:2014-07-23 23:33:26

标签: ruby-on-rails ruby-on-rails-3 activerecord ruby-on-rails-4 sti

背景:我有城市模型,我希望用户能够从城市主列表中选择家乡和当前城市,以便能够调用user.hometown和user.currentcities作为方法

问题:有哪些方法可以最好地解决这种情况?

更新 我忘了提到City本身就是一种社区(除了City之外还有其他类型的社区用户可以选择) - 这就是我使用STI的原因。

1 个答案:

答案 0 :(得分:0)

最简单的方法是将hometown_idcurrentcity_id添加为users表格中的列,然后为User模型提供两个关联:

belongs_to :hometown, :class_name => 'City'
belongs_to :currentcity, :class_name => 'City'

除非我遗漏了某些东西,否则我认为你不需要STI。

修改

如果City是通过STI的子类,那么将上面示例中的class_name更改为基本STI类的类应该允许User关联链接到社区