Я пишу довольно сложный запрос в Ruby on Rails 3.1.3 и использую find_by_sql.
Но я заметил очень странное поведение, даже если я использую find_by_sql с очень простыми запросами.
Вот простой пример:
Допустим, у меня есть две модели и связанные таблицы:
Model 1: Company
Table 1: companies
fields: id, name, address
| id | name | address |
+----+------+-----------------+
| 1 | ACME | Bond street, 56 |
и
Model 2: Employee
Table 2: employees
fields: id, name, age
| id | name | age |
+----+------+-----+
| 1 | Fred | 56 |
| 2 | Adam | 27 |
Вот что происходит; если я напишу:
Company.find_by_sql("SELECT * FROM `employees`")
Я получаю:
Company Load (0.3ms) SELECT * from `employees`
=> [#<Company id: 1, name: "Fred">, #<Company id: 2, name: "Adam">]
Я получаю только поля сотрудников, чьи имена совпадают с именами в компаниях (то есть возраст поля отсутствует)!
Нет @attributes вообще.
Это ошибка? Может кто-нибудь помочь мне?