On Sunday, February 21, 2016 at 12:04:57 PM UTC-8, Stefan Slaveykov wrote:
>
> I have a type json column in one of my PostgreSQL tables. Following the 
> docs 
> <http://sequel.jeremyevans.net/rdoc-plugins/files/lib/sequel/extensions/pg_json_rb.html>
>  i 
> added the pg_json extension and also loaded the pg_typecast_on_load plugin 
> for my model, but i'm always getting a string and not the actual json. The 
> code looks like this:
>
> class User < Sequel::Model
>   plugin :pg_typecast_on_load, :tokens
>
>   def generate_token!
>     self.tokens = Sequel.pg_json({
>       token: token_hash,
>       expiry: TOKEN_EXPIRY,
>       updated_at: Time.now
>     })
>
>     save(raise_on_failure: true)
>   end
> end
>
> When i do:
> user.tokens
> I get somethink like:
>
>
> "{\"token\":\"$2a$10$ABzWzLDx2C9Q/uLSSoErbO2CxkzKYuzpH0daR/WcD1buPV4QUBK3i\",\"expiry\":\"2016-02-28T21:25:37.789+02:00\",\"updated_at\":\"2016-02-21T21:25:38.138+02:00\"}"
>
>
> I`m pretty new to Sequel( i find it really fun and easy to work with) and 
> maybe i missed something along the way, but i just don`t know what exactly. 
> I tried using strings, instead of symbols for keys, removing the 
> pg_typecase_on_load plugin, but nothing helped. What am i doing wrong? 
> Should be something pretty straightforward.
>

Assuming you did DB.extension :pg_json before creating the model class, 
things should just work and you should not need to use the 
pg_typecast_on_load plugin.  Based on your description, I'm not sure why 
you are having the problem. The only thing I can think of would be using 
Sequel.extension :pg_json instead of DB.extension :pg_json, but considering 
you linked to the correct documentation and the documentation shows 
DB.extension :pg_json, that seems unlikely.

Can you post a self contained example showing the problem?

Thanks,
Jeremy

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to