Merchant
属性name
とで呼び出される Rails モデルがありますid
。Rails とデータベースが特定のマーチャントの名前で一致しないという問題が発生しています。
これはレールから起こっていることです:
1.9.2p320 :001 > Merchant.where(:id=>550).count
=> 1
1.9.2p320 :002 > Merchant.where(:id=>550).first.name
=> nil
そして、これはmysqlから起こっていることです:
mysql> SELECT name FROM merchants WHERE id=550;
+----------+
| name |
+----------+
| Testname |
+----------+
1 row in set (0.00 sec)
私の最初のコードウィンドウでレールが使用しているデータベースによるとFlyersAdmin::Application.config.database_configuration[::Rails.env]
、2番目のウィンドウでmysqlが使用しているものと同じです。なぜ「Testname」ではなく商人の名前なのnil
か、私は困惑しています。
注目に値するのは、最近、両方が使用しているデータベースを新しいデータで更新したことです。これが矛盾を引き起こしている可能性はありますか? Rails がデータをキャッシュしていて、更新されたデータベースをまだ見ていないのかもしれません。私は困惑しています、どんな助けも大歓迎です。
編集: 謎に追加する別の手がかりがあります: 実行Merchant.where(:name => nil)
すると空のリストが返されます! ID 550 のマーチャントが選択されないのはなぜですか?