我在獲取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
這讓我在試圖修復「失蹤」主場的圈子裏跑步!謝謝。 –