私はRubyonRails 3.1.3で非常に複雑なクエリを作成しており、find_by_sqlを使用しています。
しかし、非常に単純なクエリでfind_by_sqlを使用したとしても、非常に奇妙な動作に気づきました。
簡単な例を次に示します。
2つのモデルと関連するテーブルがあるとしましょう。
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はまったくありません。
バグですか?誰か助けてくれませんか?