Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 子项包含父项记录的STI(Rails 4)_Ruby On Rails_Ruby On Rails 3_Activerecord_Ruby On Rails 4_Sti - Fatal编程技术网

Ruby on rails 子项包含父项记录的STI(Rails 4)

Ruby on rails 子项包含父项记录的STI(Rails 4),ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-4,sti,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 4,Sti,背景:我有城市模型,我希望用户能够从城市的主列表中选择家乡和当前城市,以便能够调用user.hom乡和user.currentcities作为方法 问题:解决这种情况的最佳方法是什么 更新 我忘了提到城市本身就是一种社区(除了城市,用户还可以选择其他类型的社区)-这就是我使用STI的原因。最简单的方法是将家乡id和当前城市id添加为用户表上的列,然后给用户模型两个关联: belongs_to :hometown, :class_name => 'City' belongs_to :curr

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

问题:解决这种情况的最佳方法是什么

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

最简单的方法是将
家乡id
当前城市id
添加为
用户
表上的列,然后给
用户
模型两个关联:

belongs_to :hometown, :class_name => 'City'
belongs_to :currentcity, :class_name => 'City'
我想你不需要STI,除非我错过了什么

编辑


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

我忘了提城市本身就是一种社区(除了City之外,用户还可以选择其他类型的社区)-这就是我使用STI的原因。这对我来说是一个很好的起点!