我正在 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。
它是一个错误吗?谁能帮帮我吗?