我有另一個非rails項目的數據庫,所以我不得不處理unordinary列名。我有模型類別:在自定義數據庫上的Rails has_many/belongs_to ActiveRecord :: AssociationTypeMismatch得到了Fixnum
self.primary_key = "categoryID"
has_many :products, foreign_key: "category", primary_key: "categoryID"
而且型號產品:
self.primary_key = "productID"
belongs_to :category, foreign_key: "category", primary_key: "categoryID"
在Product
的表有存儲Category
的主鍵的外鍵category
的表,這是categoryID
。我想在這樣的一個控制檯創建一個產品:
c = Category.last
p = c.products.create
我得到一個錯誤:
ActiveRecord::AssociationTypeMismatch: Category(#29703600) expected, got Fixnum(#17843240)
我嘗試了一些其他的方式來創造一個產品,我可以通過分類實例但它會導致其他奇怪的錯誤。所以現在我只想要這種方式工作。 問題在哪裏?
,只是'c.products'作品? – Aleksey
是的,它的工作原理。但我不得不從種子創建一個產品,甚至在那裏它不接受類別字段的整數,它只接受類別實例 Product.create({category:c}) –
我認爲這是因爲你有DB列'類別「和具有相同名稱的關聯。 – Aleksey