带有include的Render:json不会渲染具有不同模型名称的表数据

时间:2018-12-07 09:49:24

标签: json ruby ruby-on-rails-4 ruby-on-rails-5

我的模型结构如下

class SetBenchmark < ApplicationRecord
  self.table_name = 'benchmarks'
  has_many :my_question_sets
end

class MyQuestionSet < ApplicationRecord
  belongs_to :set_benchmark, class_name: 'SetBenchmark',
end

class MyAdmin < ApplicationRecord
  has_many :my_question_sets
end

以下是控制器渲染方法

render json: my_admin, include: { my_question_sets: [ 'benchmark.*'] } 

我没有得到benchmark数据作为回应。是因为它的类名与表名不同吗?

1 个答案:

答案 0 :(得分:1)

我认为您应该使用关联名称,而不是json规范中的表名称。

 render json: my_admin, include: { my_question_sets: :set_benchmark } 

https://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html#method-i-as_json