Запросы, возвращающие разные типы объектов, основанные на использовании limit () или сначала
В этом примере используется limit (1) и не создается ожидаемый тип объекта:
c = PersonCategory.where("category = ?", "Crown").limit(1) ##
=> PersonCategory Load (0.3ms) SELECT `person_categories`.* FROM `person_categories` WHERE (category = 'Crown') LIMIT 1
=> [#<PersonCategory id: 1, category: "Crown">] #####
c.class
=> ActiveRecord::Relation
В этом примере используетсясначала и дает желаемый результат:
c = PersonCategory.where("category = ?", "Crown").first ##
=> PersonCategory Load (0.4ms) SELECT `person_categories`.* FROM `person_categories` WHERE (category = 'Crown') LIMIT 1
=> #<PersonCategory id: 1, category: "Crown">
c.class
=> PersonCategory(id: integer, category: string) #####
ruby-1.9.2-p180 :034 >