Ruby on rails 在RubyonRails中序列化JSON嵌套模型
我是rails新手,我有两个型号,一个型号上有外键,另一个型号上有外键 我创建了一个控制器并定义了一个索引方法,该方法运行良好: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
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