直接回答问题,我使用复合键面临Active Record( NO RAILS )的一些问题。顺便说一句,我正在使用“gem composite_primary_keys”。此表是一个包含两个以上字段的连接表。 问题是,当我做一个简单的查询时:
Freezer_Beer.find([freezer.id,beer.id]).take
它抛出:
PG::UndefinedColumn: ERROR: column freezer_beers.[:freezer_id, :beer_id] does not exist (ActiveRecord::StatementInvalid)
SELECT "freezer_beers".* FROM "freezer_beers" WHERE "freezer_beers"."[:freezer_id, :beer_id]"
我的模特是:
class Freezer < ActiveRecord::Base
has_many :beers, :through => :freezer_beer
end
class Beer < ActiveRecord::Base
has_many :freezers, :through => :freezers_beers
end
class Freezer_Beer < ActiveRecord::Base
belongs_to :freezer
belongs_to :beer
self.primary_key = :freezer_id, :beer_id
end
谢谢!
答案 0 :(得分:2)
语法为self.primary_keys = :freezer_id, :beer_id
,您错过了s。