我有一个包含A
列的表name(string), email(sring) and details(json)
。我想像这样使用first_or_create:
A.where(:name => a.name, :email => a.email, :details => a.details).first_or_create
但这会产生以下错误:
PG::UndefinedTable: ERROR: missing FROM-clause entry for table "details"
如果我们有一个json类型的列,我们不能像上面那样查询吗?
答案 0 :(得分:1)
我明白了。事实证明,对于JSON,查询将如下所示:
A.where("name=? and email=? and details->>'key1'=? and details->>'key2'=?", a.name, a.email,a.details["key1"],a.details["key2"])
http://edgeguides.rubyonrails.org/active_record_postgresql.html#json