我有这样的联想:职业 - >订单 - >个人资料 - >位置
Class Profession < ActiveRecord::Base
has_many: orders
end
Class Order < ActiveRecord::Base
has_one :profession
belongs_to :profile
end
Class Profile < ActiveRecord::Base
has_one :location
has_many :orders
end
Class Location < ActiveRecord::Base
belong_to :profile
end
我需要找到位于location.city的职业。 例如,我试试这个:
Profession.joins(:orders).where(orders: {profile: {location: {city: "Simferopol"}}})
这可能吗? 感谢。
答案 0 :(得分:0)
您可以考虑通过以下方式使用关联:
class Profession < ActiveRecord::Base
has_many :orders
has_many :profiles, through: :orders
end
这可能让您的生活更轻松,让您致电:
Profession.profiles
这将返回给定状态的所有配置文件。这对我来说似乎不那么混乱。由于您仍然需要到达与配置文件关联的位置,我确信有更优化的解决方案,但我相信这种方法比建议更好:
Profession.joins(:orders).where(orders: {profile: {location: {city: "Simferopol"}}})