Hi,
I'm fairly new to RoR and I'm having some problems with :has_many and :through and it's quite possible that I'm doing something very wrong...
The model - consists of items and the their dependencies. Items can depend on each other; this is coded through the table 'deps' with keys sub_item_id and super_item_id that refers to the items.id.
E.g.
deps id,super_item_id,sub_item_id 1 , 1, 2 2 , 1, 3 3 , 2, 3
This means that item 1 has two sub items (namely 2 & 3), item 3 has two super items (namely 1 & 2).
I use the following model:
class Item < AR::B
has_many :deps
has_many :sub_items, :through => :deps
has_many :super_items, :through => :deps
end
class Dep < AR::B belongs_to :sub_item, :class_name => 'Item', :foreign_key => 'sub_item_id' belongs_to :super_item, :class_name => 'Item', :foreign_key => 'super_item_id' end
Whenever I try to access the sub or super items I get an sql error (e.g. for item 1):
'Unknown column 'deps.item_id' in 'where clause': SELECT items.* FROM items INNER JOIN deps ON items.id = deps.sub_item_id WHERE ((deps.item_id = 1))
It would seem that the last ((...)) should have been ((deps.super_item_id = 1)). But I'm not quite sure of how I would have told the reflection of that key name (super_item_id).
I've tried any different variations of this without any luck.
Any clues or hints?
Regards, - Jacob