-1

Going straight to the problem, I'm facing some problems with Active Record(NO RAILS) using composite keys. I'm using "gem composite_primary_keys" by the way. This table is a join table with two more fields. The problem is, when I do a simple query:

Freezer_Beer.find([freezer.id,beer.id]).take

It throws:

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]"

My models are:

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

Thanks!

hedlabel
  • 3
  • 3

1 Answers1

2

The syntax is self.primary_keys = :freezer_id, :beer_id, you have missed off an s.

j-dexx
  • 10,286
  • 3
  • 23
  • 36
  • Yes! Just one single 's' was killing it all! :( The other problem was because I was not including it: require 'composite_primary_keys' – hedlabel May 30 '14 at 13:51