【发布时间】:2015-09-20 09:58:41
【问题描述】:
我或这个查询有什么问题?
我有一个 Shop 模型,其中包含一个开放天数列,它是一个整数数组(您可以使用 Postgres 执行此操作):
days= [1,1,1,1,0,0,0]
当我查询时:
shops = Shop.where('days[0] = 1')
我得到一个空的 ActiveRecord 关系。
=> #<ActiveRecord::Relation []>
当我用这种阵列去商店时……
shop = Shop.first
=> #<Shop id: 215, days: [1, 1, 1, 1, 0, 0, 0],…
如果我这样做
shop.days[0]
我明白了
=> 1
我真的不明白。
【问题讨论】:
-
PG中的
days列是怎么定义的? -
像这样:
t.integer :days, array: true, default: [1,1,1,1,1,1,1] -
这就是它在我的数据库列中的“外观”:
{1,1,1,1,1,1,1}。并且标题列是天整数[] -
Rails 创建和执行的真正查询是什么?检查控制台中的输出,并在 PG 控制台上尝试。有用吗?
-
查询是:
SELECT "shops".* FROM "shops" WHERE (days[0] = 1),答案是=> #<ActiveRecord::Relation []>。我不知道如何使用 PG 控制台,所以我要检查一下;)
标签: ruby-on-rails arrays postgresql