我有一个Merchant
带有属性name
和id
. 我遇到了一个问题,rails 和我的数据库在某个商家的名称上存在分歧。
这是 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]
我的第一个代码窗口中rails使用的数据库与第二个窗口中mysql使用的数据库相同。为什么商家的名字是nil
“Testname”而不是“Testname”是我难倒的。
值得注意的是,最近我用新数据更新了他们都使用的数据库,这是否可能导致差异?也许 Rails 缓存了数据,所以还没有查看更新的数据库?我很难过,任何帮助表示赞赏。
编辑:这是另一个增加谜团的线索:运行Merchant.where(:name => nil)
返回空列表!为什么不选择 id 为 550 的商家?