So I have this structure.
class Gallery < ActiveRecord::Base belongs_to :owner, :polymorphic => true has_many :folders, :order => 'slug', :dependent => :destroy
class Folder < ActiveRecord::Base has_many :photos, :dependent => :destroy, :conditions => "parent_id IS NULL" belongs_to :gallery
class User < ActiveRecord::Base has_one :gallery, :as => :owner, :dependent => :destroy has_many :folders, :through => :gallery
Seems fine, right? So @user.folders should do join between users, galleries and folders.
users.id (1 in the example) == gallery.owner_id and gallery.id == folders.gallery_id
Right? Well it does not.
Mysql::Error: #42S22Unknown column 'galleries.gallery_id' in 'on clause': SELECT folders.* FROM folders INNER JOIN galleries ON folders.id = galleries.gallery_id WHERE ((galleries.owner_id = 1) AND (galleries.owner_type = 'User'))
This query doesn't make a lot of sense for me... Anyone wanna explain?