Apparently has_many :X, :through => :Y depends on you having an existing has_many :Y defined in the model. You get this error when you call find if you haven't declared that the model has_many :Y. Who knew?