模块中 class 的 Active Record 连接
Active Record join for class in module
Rails6/Ruby2.7
所以我有两个 类 ModuleX::SubModuleA::Order
和 ModuleY::SubModuleB::OrderType
我想做类似
的事情
ModuleX::SubModuleA::Order.joins("ModuleY::SubModuleB::OrderType")...
这种语法通常非常简单:ModuleX::SubModuleA::Order.joins(:order_type)
但我找不到任何关于模块中 类 如何工作的文档。
joins
的语法允许两种用途:首先,通过其(符号)名称引用在左侧模型上定义的关系,或者其次,原始 SQL。这两种方法实际上都不受模块使用的影响,因为它们都没有引用您要加入的模型的 class。
在您的情况下,您可能希望在订单和订单类型之间建立关系,例如:
class ModuleX::SubModuleA::Order
belongs_to :order_type, class_name: 'ModuleY::SubModuleB::OrderType'
end
然后,您可以按照预期的方式执行相同的语法:
ModuleX::SubModuleA::Order.joins(:order_type).all
Rails6/Ruby2.7
所以我有两个 类 ModuleX::SubModuleA::Order
和 ModuleY::SubModuleB::OrderType
我想做类似
的事情ModuleX::SubModuleA::Order.joins("ModuleY::SubModuleB::OrderType")...
这种语法通常非常简单:ModuleX::SubModuleA::Order.joins(:order_type)
但我找不到任何关于模块中 类 如何工作的文档。
joins
的语法允许两种用途:首先,通过其(符号)名称引用在左侧模型上定义的关系,或者其次,原始 SQL。这两种方法实际上都不受模块使用的影响,因为它们都没有引用您要加入的模型的 class。
在您的情况下,您可能希望在订单和订单类型之间建立关系,例如:
class ModuleX::SubModuleA::Order
belongs_to :order_type, class_name: 'ModuleY::SubModuleB::OrderType'
end
然后,您可以按照预期的方式执行相同的语法:
ModuleX::SubModuleA::Order.joins(:order_type).all