我在获取has_and_belongs_to关系时遇到困难。Rails has_and_belongs_to_many ActiveRecord :: UnknownPrimaryKey
分类模型:
class Category < ActiveRecord::Base
has_and_belongs_to_many :products
end
产品型号:
class Product < ActiveRecord::Base
has_many :orders, foreign_key: 'sku', primary_key: 'sku'
has_and_belongs_to_many :categories
end
我使用现有的数据库,并建立模型所需的所有数据,映射列轨道命名约定。
这里是意见的结构:
类别查看:
categories
id
name
category_parent
产品视图:
products
id
sku
price
title
类别产品合并视图:
categories_products
category_id
product_id
这里就是我与控制台进行了测试,错误产生:
2.0.0p247 :017 > Product.first.categories
Product Load (1.0ms) SELECT `products`.* FROM `products` LIMIT 1
ActiveRecord::UnknownPrimaryKey: Unknown primary key for table categories in model Category.
我试图从产品中除去其他的联想,只是为了消除冲突的可能性:
has_many :orders, foreign_key: 'sku', primary_key: 'sku'
但没有它,结果是一样的。
其他协会工作正常:
Order.first.product
Order Load (2.9ms) SELECT `orders`.* FROM `orders` ORDER BY `orders`.`id` ASC LIMIT 1
Product Load (5.7ms) SELECT `products`.* FROM `products` WHERE `products`.`sku` = '826663144369' LIMIT 1
=> #<Product id: 218464, sku: "1234567890", price: #<BigDecimal:7fabdb577428,'0.2195E2',18(18)>, title: "Blah blah blah">
我使用Ruby 2.0.0p247,和Rails 4.0.0
这让我在试图修复“失踪”主场的圈子里跑步!谢谢。 –