我需要访问一个信息,该信息存储了我正在查询的两个关系。
class Information < ActiveRecord::Base
...
belongs_to :information_type, polymorphic: true
...
end
class InformationTypeOne < ActiveRecord::Base
...
belongs_to :location
has_one :information, as: :information_type
...
end
class InformationTypeTwo < ActiveRecord::Base
...
belongs_to :location
has_one :information, as: :information_type
...
end
class Location < ActiveRecord::Base
has_many :information_type_ones
has_many :information_type_twos
end
所以我想做的是找到属于一个位置的所有信息,无论它是什么 InformationType。
最好的情况是Information.where(location: 'Location A')
任何人都知道如何实现这一点?
- - 更新 - -
通过添加以下内容,我至少设法获得了属于信息的位置:
delegate :location, to: :information_type
如果我现在能以某种方式完成这项工作:
Information.where(location: 1)
我会很高兴的。任何人?:)