У меня есть следующие модели:
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
books_projects.rb:
class BookToProject < ActiveRecord::Base
set_table_name "books_projects"
belongs_to :book
belongs_to :project
end
В контроллере своих проектов я пытаюсь сделать это:
@projects = Project.find(:all, :include => [:books])
Я надеюсь вернуть вложенную структуру данных, которая будет выглядеть примерно так:
projects: [
{
..,
books: [
{
..
},
{
..
}
]
}
]
Это не работает. Как мне этого добиться?
Кроме того, приведенные выше модельные отношения требуют использования has_and_belongs_to_many
в проекте и книге вместо указания таблицы соединения?
Заранее спасибо!
Редактировать 1:
У меня нет представления. Это действует только как служба REST. Я делаю следующее:
def index
@projects = Project.find(:all, :include => [:books])
respond_to do |format|
format.xml { render :xml => @projects }
format.json { render :json => @projects}
end
end
Это не приводит к выводу, который я ищу (упомянуто выше).