新手问题 有关 hstore 读取的问题

cassiuschen · May 01, 2014 · Last by cassiuschen replied at May 01, 2014 · 1576 hits

使用Postgresqlhstore可以近似想成存入 JSON,不过有个问题, 比如对于 User 有一个hstore类型的contact

2.1.1p76 :002 > u = User.all.first
  User Load (11.2ms)  SELECT  "users".* FROM "users"   ORDER BY "users"."id" ASC LIMIT 1
 => #<User id: 8,  contact: {"qq"=>"**QQ**", "weibo"=>"", "renren"=>"", "wechat"=>""}> 
2.1.1p76 :003 > u.contact[:qq]
 => nil 
2.1.1p76 :004 > u.contact["qq"]
 => "**QQ**" 

不是说 Symbol 和 String 大体上就是是否在使用时新建对象么?为何在这样的查询时就会有问题发生?

HStore 内部实现只支持用 String 作为 key。

#1 楼 @lgn21st 这么蛋疼……

Ruby 的 Hash 本来就认为 symbol 和 string 是不一样的,在 Rails 里面 params 不分 symbol 和 string 是做了特殊处理。

#3 楼 @Rei 明白了……那看来还是需要避免这个问题……

You need to Sign in before reply, if you don't have an account, please Sign up first.