ActiveRecord: has_many и custom foreign_key - PullRequest
0 голосов
/ 10 марта 2012

У меня следующая структура:

class Product < ActiveRecord::Base
    has_many :product_units
    has_many :units, :through => :product_units, :foreign_key => :unitID
end

class Unit < ActiveRecord::Base
    has_many :product_units
    has_many :products, :through => :product_units, :foreign_key => :productID
end

class ProductUnit < ActiveRecord::Base
    belongs_to :unit, :foreign_key => :unitID
    belongs_to :product, :foreign_key => :productID
end

, но при попытке запустить

Product.last.units.create({:name => 'test', :symbol => 't'})

возникает следующая ошибка:

ActiveRecord::UnknownAttributeError: unknown attribute: product_id

Может кто-нибудь помочьмне ?это сводит меня с ума: x

EDIT: Когда я пытаюсь сделать следующее:

Product.last.units

Я получаю сообщение об ошибке

SELECT "units".* FROM "units" INNER JOIN "product_units" ON "units"."unitID" = "product_units"."unitID" WHERE "product_units"."product_id" = 1

Проблемаявляется то, что product_units не имеет поля product_id, вместо этого его имя является productID;почему имя идентификатора является правильным при объединении, но не в операторе where?

1 Ответ

0 голосов
/ 10 марта 2012

Не могли бы вы попробовать "productID" вместо: productID?Кажется, что эта проблема связана с функцией автоматической верблюда в рельсах.

...