Active Record Question

Hi...I am only 1 day into Rails, so please forgive me if this is a lame question!

I have the following models:

require 'books_projects.rb'

class Project < ActiveRecord::Base   has_many :book_to_projects   has_many :books, :through => :book_to_projects end

require 'books_projects.rb'

class Book < ActiveRecord::Base   has_many :book_to_projects   has_many :projects, :through => :book_to_projects end

In my projects controller, I am trying to do this:

@projects = Project.find(:all, :include => [:books])

My hope is to get a nested data structure back that looks something like:

projects: [   {     ..,     books: [         {           ..         },         {           ..         }     ]   } ]

But that does't work. How can I achieve this?

Thanks in advance!

In my projects controller, I am trying to do this:

@projects = Project.find(:all, :include => [:books])

My hope is to get a nested data structure back that looks something like:

Well you what you get back is an array of projects where the book objects have already been fetched fro the database If you call to_json(:include => :books) then you should get output pretty similar to what you've described.

Fred

That did the trick! Thanks!

But, I am sorry I did not get your explanation. Forgive me, I am very new to Ruby and Rails. Could you please explain why it didn't work before, and why it worked your way?

Also, in my controller, I'd like to call the parent controller's method to format my json in a certain way...So instead of this:

respond_to do |format|   format.json { render :json => @projects.to_json(:include => [:apps]) } end

I'd like to do something like this:

result = <nested data> respond_to do |format|   format.json { render :json => some_method_in_parent_controller(result) } end

So all my other controllers that subclass this parent application controller can pass data to this parent controller's method and format the data in a particular way.

How do I achieve this? Please help! Thanks!