Я подумал, что сделаю новый ответ, потому что в комментарии не хватает места.
Я думаю, что вы можете усложнить себе жизнь этим заявлением. Я почти уверен, что вы можете добиться желаемого эффекта с меньшими усилиями с помощью обычного Rails-оператора find. Это будет более переносимым (через базы данных), а также. Я не очень понимаю, что там происходит, но что-то вроде этого:
Image.find :all, :conditions => ["on_id = :on_id and on_type = :on_type", {:on_id => 1, :on_type => "profile"}], :order => "updated_at" :limit => (whatever calculation you are using to get your limit)
Синтаксис может быть немного неправильным, но он должен привести вас в стадион. В общем, вы должны стараться не допускать логику в базу данных и в свои модели.