2017-08-17 69 views
1

我有一个模型Product,我想在这两个字段上实现自我关联channel_advisor_product_id,parent_product_id。但是,当我打电话Product.last.child_products它需要它的id代替parent_product_id使用除'id'以外的其他字段添加自我一对多关联

belongs_to :parent_product, class_name: 'Product', primary_key: "channel_advisor_product_id" 

has_many :child_products, class_name: 'Product', foreign_key: "parent_product_id" 

回答

0

基本上问题是由两个协会parentchildren加入primary_keyforeign_key 解决。现在这个ID被排除在外,并且self association对我提供的列正常工作。

belongs_to的:父母,CLASS_NAME: '产品',primary_key: “channel_advisor_product_id”,foreign_key: “parent_product_id”
的has_many:孩子,CLASS_NAME: '产品',foreign_key: “parent_product_id”,primary_key“ channel_advisor_product_id“

1

你使用Rails控制台?

如果 “是”,键入exit “轨C” 一遍,然后在控制台:

Product.last.child_products 

和您`ll看到,如果查询使用 “ID” 或 “parent_product_id”。

相关问题