在我的rails项目中,我有一个用户序列化程序:
class UserSerializer < ActiveModel::Serializer
attributes ...
has_one :project
has_many :sessions
end
和一个会话:
class SessionSerializer < ActiveModel::Serializer
attributes ...
belongs_to :user
end
所以如果我从任何控制器返回会话:
render json: session
我得到类似的东西:
{ "session": {
"user: { ... }
...
}
但是用户不包含该项目,因为我觉得它太深了,所以我该如何包含它呢?
答案 0 :(得分:2)
您可以配置default_includes
AMS
以进行更深层次的嵌套
# config/initializers/active_model_serializer.rb
ActiveModel::Serializer.config.default_includes = '**'
或者您可以尝试向include
方法提供render
选项:
render json: session, include: ["user.project"]