1

Ich habe ein Modell namens Event. Ein Ereignis has_and_belongs_to_many :event_sub_categories und eine EventSubCategory has_and_belongs_to_many :events. Ich habe folgende Aktion:ActiveModel Serializer mit has_and_belongs_to_many

def index 
    @events = Event.where(begins_at: DateTime.now.beginning_of_day..1.week.from_now).group_by{|e| e.begins_at.beginning_of_day}.to_a.to_json 
    render json: @events 
end 

Die Aktion gibt die Daten genau wie erforderlich zurück, mit Ausnahme eines Problems, es hat keine Unterkategorien. Ich brauche den JSON, um die Unterkategorien zu enthalten. Ich habe versucht, den folgenden ActiveModel Serializer zu machen:

aber der Serializer oben ändert den JSON überhaupt nicht. Wie behebe ich das?

+0

Was sind 'subcategories' und in welcher Beziehung stehen sie auf' events'? – Uzbekjon

+0

Ich habe die Frage aktualisiert. Entschuldigung, ich habe es vermasselt, als ich es geschrieben habe und "geduldig" eingefügt, als ich "event_sub_category" meinte. Die Frage sollte jetzt klarer sein. – Philip7899

Antwort

4

versuchen

class EventSerializer < ActiveModel::Serializer 
    attributes :id, :name 
    has_many :event_sub_categories 
end 
+0

Das wird nicht funktionieren. Der Serializer wird ignoriert. – Philip7899

+0

Ich denke, Sie sollten den to_json in '@events = Event.where (begin_at: DateTime.now.beginning_of_day..1.week.from_now) .group_by {| e | entfernen e.begins_at.beginn_of_day} .to_a.to_json', da der activemodelserializer automatisch für Sie arbeitet –

+0

verwenden Sie die volle Schiene oder Schiene api? –