我有一个名为Event的模型。事件has_and_belongs_to_many :event_sub_categories
和EventSubCategory has_and_belongs_to_many :events
。我有以下行动:
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
除了一个问题外,该操作完全按照需要返回数据,它没有子类别。我需要json来包含子类别。我尝试制作以下ActiveModel Serializer:
class EventSerializer < ActiveModel::Serializer
attributes :id, :name, :event_sub_categories
end
但上面的序列化器根本不会改变json。我该如何解决这个问题?
答案 0 :(得分:4)
尝试
class EventSerializer < ActiveModel::Serializer
attributes :id, :name
has_many :event_sub_categories
end
答案 1 :(得分:0)
尝试一下:
1-在您的控制器中,修改查询的方式包括event_sub_categories:
vx.y.z.dev[...]
2-为EventSubCategory模型创建序列化器
3-在事件序列化器中创建方法event_sub_categories
def index
@events = Event.includes(:event_sub_categories).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