I tried that and while it works for the elements of the array of :job 
records, I still have a problem not getting associated records :job_items

@rs[:jobs] = Job.where(:id => [100254,100255]).eager(:job_items).all.to_json
(include: :job_items)


Thanks,
Shreko

On Thursday, 18 April 2019 10:18:06 UTC-6, Jeremy Evans wrote:
>
> On Friday, April 19, 2019 at 12:12:39 AM UTC+9, shreko wrote:
>>
>> I like to use roda's :json plugin for sending JSON API Data where we just 
>> send Array/Hash as output of a route. But, in order to take advantage of 
>> Sequel Models and associations, I end up with arrays of models and 
>> associated models.
>> For example:
>>
>> plugin :json, :classes => [Array, Hash, Sequel::Model]
>>
>> r.get "eager_test" do
>>   jobs = Job.where(:id => [100254,100255]).eager(:job_items).all
>>   @rs[:jobs] = jobs.map do |v|
>>     h = v.to_hash
>>     h[:job_items] = v.job_items.map {|ji| ji.to_hash}
>>     h
>>      
>>   end
>>   @rs
>> end
>>
>> This works as expected, but I am just wondering if there is a better way 
>> to do it, without looping thru. Even though Sequel::Model is specified in 
>> :json plugin options, it wouldn't convert Array of models to proper json 
>> output, just pure models I guess.
>>
>
> Array#to_json should call #to_json on all elements of the array, so an 
> array of Sequel::Model instances should work, as long as you use the Sequel 
> json_serializer plugin in the related models.
>
> 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