[英]include Association in Rails json Response
学术批次属于学院
academic_batches = AcademicBatch.all
render json: {
items: academic_batches.as_json({only: [:id, :name],include:[ academy: {only: [:name]} ]})
}
响应看起来像
[{"id"=>1, "name"=>"2010-2014", "academy"=>{"name"=>"College of Engineering Guindy"}}]
但由于其他一些原因,我需要这样的回应:
[{"id"=>1, "name"=>"2010-2014", "academy"=>"College of Engineering Guindy"}]
我应该做哪些改变??
定义一个名为academy_name
的方法并像下面这样访问,
academic_batches = AcademicBatch.all
render json: {
items: academic_batches.includes(:academy).as_json({only: [:id, :name], methods: :academy_name})
}
如果您使用序列化程序(如https://github.com/rails-api/active_model_serializers & https://github.com/Netflix/fast_jsonapi )来呈现 JSON 响应会更好。 这让工作变得简单
你可以这样做:
academic_batches = AcademicBatch.all
render json: {
items: academic_batches.includes(:academy).as_json({only: [:id, :name]}).map {|a| a.merge(academy: a.academy.name)}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.