0

Ich habe zwei einfache Modelle:Rails 5 - sind verschachtelt Verbände nicht funktioniert

  1. note.rb

mit

:title -> string, :content -> string has_and_belongs_to_many :tags, join_table: :tags_notes accepts_nested_attributes_for :tags

  1. tag.rb

mit

:name -> string has_and_belongs_to_many :notes, join_table: :tags_notes

Beide Modelle sind durch has_and_belongs_to_many Beziehung verbunden. Die Zuordnungstabelle heißt tags_notes wie oben angegeben. Nun, das Problem, das ich hier habe ist, in meinem RESTful Controller, um Notizen zu bekommen, ich habe dies:

GET /api/notes Diese nur kehrt Objekte Hinweis:

[ 
    { 
     "id": 1, 
     "title": "12231", 
     "content": "121213" 
    }, 
    { 
     "id": 2, 
     "title": "test", 
     "content": "testtest" 
    } 
] 

jedoch jede Note hat tags, und ich möchte auch die in der Antwort auf Dump, wie folgt aus:

 [ 
     { 
      "id": 1, 
      "title": "12231", 
      "content": "121213", 
      tags: [ 
       { 
       "name": "test", 
       "id": 1 
       }, 
       { 
       ... 
       } 
      ] 

     }, 
     ... 
    ] 

in meinem Controller, ich habe versucht, Note.includes(:tags).

Stromregler Code: def index notes = Note.includes(:tags) render json: notes, status: :ok end

Sie scheinen nur notes zurückzukehren, ohne tags. Gleiches ist der Fall mit Note.eager_load(:tags) Was mache ich falsch? Ich kann nicht genügend Dokumentation finden, die mir hilft, dieses Problem zu beheben. Wenn mir jemand dabei helfen kann, werde ich dankbar sein.

Vielen Dank.

Antwort

2

Kurz nachdem ich meine Frage gepostet habe, habe ich die Antwort selbst gefunden. Die include hat in render.

So ist der Controller-Code

def index 
    notes = Note.all 
    render json: notes, :include => :tags, status: :ok 
    end 

scheint zu tun, den Trick zu gehen!