Я пытался понять некоторые из внутренних особенностей Rails Relations, чтобы эффективно использовать их в запросах. Поэтому я открыл консоль и провел несколько тестов:
ruby-1.9.2-p180 :036 > Skill.where(:second_class => 'Wealth Ranger').map {|att| att.class}
=> [Skill(id: integer, name: string, description: string, second_class: string, third_class: string, created_at: datetime, updated_at: datetime)]
Я бы не ожидал такого выхода. Я бы ожидал что-то вроде отношений или что-то подобное. Но похоже, что он пересекает каждый атрибут и создает тип для каждого.
Что такое отношение в терминах Руби? Это совершенно нестандартная структура? Если да, то есть ли сходство между хешами и массивами, или это следует рассматривать как полностью пользовательскую структуру?
EDIT:
После еще одного тестирования кажется, что он просто содержит объекты этого класса. Это так работает?