ActiveRecord find_by查询返回nil

时间:2017-03-15 14:55:34

标签: ruby-on-rails ruby activerecord

我的数据库中存储了以下对象:

<TenancyTenant id: 11, tenancy_id: 1, tenant_id: 1, created_at: "2017-03-15 14:30:44", updated_at: "2017-03-15 14:30:44">

当我使用以下查询时,将返回该对象:

TenancyTenant.find_by(tenancy_id: 1)
TenancyTenant.find_by(tenant_id: 1)
TenancyTenant.find_by(id: 11)
TenancyTenant.find_by(id: 11, tenancy_id: 1)
TenancyTenant.where(tenancy_id: 1, tenant_id: 1)

然而,当我使用:

TenancyTenant.find_by(tenant_id: 1, tenancy_id: 1)

然后它返回nil。

请有人可以告诉我为什么会出现这种情况吗?

1 个答案:

答案 0 :(得分:0)

看起来ActiveRecord已缓存TenancyTenant.find_by(tenant_id: 1, tenancy_id: 1)的结果。尝试在uncached块中执行相同的查询:

TenancyTenant.uncached do
  TenancyTenant.find_by(tenant_id: 1, tenancy_id: 1)
end