Rails: 多个关联查询
Rails: multiple associations query
我有这样的关联:职业 -> 订单 -> 个人资料 -> 位置
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"}}})
这可能吗?
谢谢
您可以考虑使用以下关联:
class Profession < ActiveRecord::Base
has_many :orders
has_many :profiles, through: :orders
end
这可能会让您的生活更轻松,您可以致电:
Profession.profiles
这将 return 给定状态的所有配置文件。对我来说似乎不那么混乱。由于您仍然需要到达与配置文件关联的位置,我相信有一个更优化的解决方案,但我相信这种方法比建议的更好:
Profession.joins(:orders).where(orders: {profile: {location: {city: "Simferopol"}}})
我有这样的关联:职业 -> 订单 -> 个人资料 -> 位置
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"}}})
这可能吗? 谢谢
您可以考虑使用以下关联:
class Profession < ActiveRecord::Base
has_many :orders
has_many :profiles, through: :orders
end
这可能会让您的生活更轻松,您可以致电:
Profession.profiles
这将 return 给定状态的所有配置文件。对我来说似乎不那么混乱。由于您仍然需要到达与配置文件关联的位置,我相信有一个更优化的解决方案,但我相信这种方法比建议的更好:
Profession.joins(:orders).where(orders: {profile: {location: {city: "Simferopol"}}})