在模型中将子项显示为父项 - Rails

时间:2017-10-05 11:29:14

标签: ruby-on-rails

我正在使用Rails 4.1.4

因为我有一个模型:

class FormQuestion < ActiveRecord::Base

  belongs_to :form_parent_question, :foreign_key => 'form_parent_question_id', :class_name => 'FormQuestion'
  has_one :form_child_question, :foreign_key => 'form_parent_question_id', 

  accepts_nested_attributes_for :form_child_question


end

你可以看到,有一个父母和孩子的问题。

当我执行FormQuestion.all.to_json时,子问题会出现在渲染的父问题中。

有没有办法让所有问题都以阵列形式出现?

当前回应

{"form_questions":[
  {
    "id":1,
    "form_child_question": {
      "id":2,
      "form_child_question": null
    }
  }
]}

我想要实现但无法实现的响应:

{"form_questions":[
  {
    "id":1,
    "form_parent_question_id": null
  },
  {
    "id":2,
    "form_parent_question_id": 1
  },
]}

1 个答案:

答案 0 :(得分:0)

请使用此

FormQuestion.all.map{|f| {id: f.id, form_parent_question_id: f.form_parent_question_id } }

这将为您提供您期望的结果。

如果您正在构建apis,也可以使用序列化程序。你可以使用的宝石是active_model_serializers