【问题标题】:STI where children include parent records (Rails 4)子项包含父记录的 STI (Rails 4)
【发布时间】:2014-07-23 23:33:26
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    除非我遗漏了什么,否则我认为你不需要 STI。

    编辑

    如果 City 是 STI 的子类,则将上述示例中的 class_name 更改为基本 STI 类的类应该允许 User 关联链接到社区。​​p>

    【讨论】:

    • 我忘了提到城市本身就是一种社区(除了城市,用户还可以选择其他类型的社区)——这就是我使用 STI 的原因。不过,这对我来说是一个很好的起点!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多