2017-10-05 59 views
0

我用Rails 4.1.4顯示孩子在模型父 - Rails的

在,我有一個單一的模式:

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 
    }, 
]} 

回答

0

只要使用這個

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

這會給你你所期望的結果。

如果您正在構建apis,也可以使用序列化器。你可以使用的寶石是active_model_serializers

+0

已經使用序列化器。但他們沒有正常工作。我正在使用你提到的同一顆寶石。 – user1735921

+0

你能告訴我你使用的軌道版本和active_model_serializer版本爲 –

+0

0.9.5爲主動模型串行器和4.1.4爲軌道 – user1735921