On Monday, April 20, 2020 at 7:17:27 AM UTC-7, shreko wrote: > > Sorry for pulling out a two year old question (Best way to Serialize > Models <https://groups.google.com/forum/#!topic/sequel-talk/o2vVW2tURXw>), > but there is a piece of a puzzle still missing for me and I still don't > know how to do what I would like to: > > # Using roda's :json plugin > plugin :json, classes => [Array, Hash, Sequel::Model] > > > # In the main route start collecting different things in a hash @rs that > we be sent to the client as JSON at the end > route do |r| > @rs = {} > > # user record, this is DB persisted session > @rs[:user] = current_user(r.cookies('SESSIONID')) > > # Maybe some other record that will be sent on every request > @rs[:user_settings] = user_settings(@rs[:user][:id]) > > r.multi_route > end > > > # in the multi_route branch > r.get "jobs" do > > @rs[:jobs] = Job.where(:id => [100,101]).eager(:job_items).all > > # and the last statement of every route would be @rs which will be > converted to JSON by roda's :json plugin > # this pattern works great when @rs hash values are arrays and hashes, > but Models in the mix don't work) > > @rs > > end > > > > Are you using the Sequel json_serializer plugin in your models? If not, you probably should. I assume that will fix your issue, as the Roda json plugin just calls to_json on the resulting object, and the Sequel json_serializer plugin adds Model#to_json.
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 view this discussion on the web visit https://groups.google.com/d/msgid/sequel-talk/900c1733-f705-4675-87e4-4af5e667a6ef%40googlegroups.com.
