Ruby on rails 在RubyonRails中序列化JSON嵌套模型

Ruby on rails 在RubyonRails中序列化JSON嵌套模型,ruby-on-rails,Ruby On Rails,我是rails新手,我有两个型号,一个型号上有外键,另一个型号上有外键 我创建了一个控制器并定义了一个索引方法,该方法运行良好: def index @collections = Collection.all render json: @collections end 这是呈现如下内容: [{“id”:1,“标题”:“收藏” “图书id”:1,“创建于”:“2016-04-10T18:41:32.709Z”,“更新于”:“2016-04-10T18:41:32.709

我是rails新手,我有两个型号,一个型号上有外键,另一个型号上有外键

我创建了一个控制器并定义了一个索引方法,该方法运行良好:

  def index
    @collections = Collection.all
    render json: @collections 
  end
这是呈现如下内容:

[{“id”:1,“标题”:“收藏” “图书id”:1,“创建于”:“2016-04-10T18:41:32.709Z”,“更新于”:“2016-04-10T18:41:32.709Z”}]

我想将book_id字段转换为book对象列表,如下所示:

[{“id”:1,“标题”:“收藏A”,“书籍”:[{“图书id”:1,“标题: “书名”},],“创建时间”:“2016-04-10T18:41:32.709Z”,“更新时间”:“2016-04-10T18:41:32.709Z”}]

然后我试着:

  def index
    @collections = Collection.all
    render :json => collections.as_json(
                  :include => { :book_title }
                )
  end
但是它给了我语法错误,我看不出如何在这个文档中正确地执行它
http://guides.rubyonrails.org/layouts_and_rendering.html

我正在使用Rails 4.1.0,请尝试:

  def index
    @collections = Collection.all
    render :json => @collections.as_json(
                  :include => :book
                )
  end
或者,如果您只需要:id和:title:

  def index
    @collections = Collection.all
    render :json => @collections.as_json(
                  :include => {:book => {:only => [:id, :title]}}
                )
  end

我尝试了你的第一个例子,它告诉我未定义的局部变量或方法“collections”用于#你是指吗?@collections然后我尝试了@collections,它说你是指book_id吗?让我修正我的答案Hello!使用@collections它给我这个错误:未定义的方法“book”用于#你是指吗?book_id你没有
属于#book进入你的集合类?嗯,我不太了解你,我是rails新手,我是这样创建模型的:bin/rails生成模型书标题:字符串绘图:文本,bin/rails生成模型集合标题:字符串绘图:文本书\u id:integer