# BUG? has\_many :through makes funny queries

**URL:** <https://www.ruby-forum.com/t/bug-has-many-through-makes-funny-queries/125649>\
**Category:** Rails\
**Created:** [January 10, 2008, 11:05pm UTC](https://www.ruby-forum.com/t/bug-has-many-through-makes-funny-queries/125649 "2008-01-10T23:05:25Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![arturaz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/73ab20/32.png) [@arturaz](https://www.ruby-forum.com/u/arturaz)\
**Post date:** [January 10, 2008, 11:05pm UTC](https://www.ruby-forum.com/t/bug-has-many-through-makes-funny-queries/125649/1 "2008-01-10T23:05:25Z")

</div>

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?
