Ruby on rails Rails:ActiveRecord:如何提取具有关联的记录并呈现为json

Ruby on rails Rails:ActiveRecord:如何提取具有关联的记录并呈现为json,ruby-on-rails,json,activerecord,Ruby On Rails,Json,Activerecord,我有三种型号 住宿 住宿类型 位置 住宿类型有许多住宿 地点有许多住宿 住宿属于住宿和位置 我想将住宿与住宿类型和位置一起呈现为json的一部分 我试过的是- 第一 第二 我知道我可以得到它 accommodations = Accommodation.all render :json => accommodations.to_json(:include => [:location, :accommodation_type]) and return 但是,我需要将住宿作为ret

我有三种型号

  • 住宿
  • 住宿类型
  • 位置
住宿类型
有许多
住宿

地点
有许多
住宿

住宿
属于
住宿
位置

我想将
住宿
住宿类型
位置
一起呈现为json的一部分

我试过的是-

第一

第二

我知道我可以得到它

accommodations = Accommodation.all
render :json => accommodations.to_json(:include => [:location, :accommodation_type]) and return

但是,我需要将
住宿
作为
return\u obj

的一部分,以下应该有效:

render :json => Accommodation.all.to_json(:include => [:location, :accommodation_type]) }

我已经找到了一个解决方案,但我不确定它是否是最好的

return_obj = {}
return_obj[:error] = false
accommodations = Accommodation.all
return_obj[:accommodations] = JSON.parse(accommodations.to_json(:include => [:location, :accommodation_type]))
render :json => return_obj and return
请让我知道,如果你有更好的解决方案给出相同的结果


谢谢。

是的。我知道这很有效。我想将住宿放入return_obj并将return_obj呈现为json。请看我问题的结尾。
render :json => Accommodation.all.to_json(:include => [:location, :accommodation_type]) }
return_obj = {}
return_obj[:error] = false
accommodations = Accommodation.all
return_obj[:accommodations] = JSON.parse(accommodations.to_json(:include => [:location, :accommodation_type]))
render :json => return_obj and return