复合键Rails Postgres

时间:2014-05-30 13:30:33

标签: ruby-on-rails ruby postgresql activerecord composite-primary-key

直接回答问题,我使用复合键面临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

谢谢!

1 个答案:

答案 0 :(得分:2)

语法为self.primary_keys = :freezer_id, :beer_id,您错过了s。