Eager fetching returning JSON results


#1

All,

I have a many_to_one relationship object between products and
categories and I want to return the category too using JSON results
but it seems that rails only gives back the products JSON object on
the view layer. This is the piece of code:

    @products = Product.find(:all, :include => [:category] )

    respond_to do |format|
        format.json {render :json => [@products]
    end

Have I missed something? I thought by doing this I have enabled the
eager fetching? Or does eager fetching does not work with JSON
results?

Thanks in advance.


If you can’t believe in God the chances are your God is too small.

Read my blog: http://joshuajava.wordpress.com/
Follow me on twitter: http://twitter.com/jpartogi


#2

On Feb 14, 1:26 am, Joshua P. removed_email_address@domain.invalid wrote:

        format.json {render :json => [@products]
    end

There’s 2 separate things: the :include option on Product.find just
ensures those associations are loaded
To have them in your json (or xml) output you need to pass that to
to_json or to_xml, ie render :json => @products.to_json(:include
=> :category)

Fred


#3

Darn,

I returned an array object besides that products instance, giving that
to_json will give backslashes to the quotes.

On Feb 14, 9:31 pm, Frederick C. removed_email_address@domain.invalid