ActiveModel Serializers 二级属性
ActiveModel Serializers two level attributes
在我的 rails 项目中,我有一个用户序列化程序:
class UserSerializer < ActiveModel::Serializer
attributes ...
has_one :project
has_many :sessions
end
还有一个用于会话:
class SessionSerializer < ActiveModel::Serializer
attributes ...
belongs_to :user
end
因此,如果我 return 来自任何控制器的会话:
render json: session
我得到类似的东西:
{ "session": {
"user: { ... }
...
}
但是用户不包含该项目,因为我猜它太深了,那么我该如何包含它呢?
您可以配置 default_includes
个 AMS
以进行更深层次的嵌套
# config/initializers/active_model_serializer.rb
ActiveModel::Serializer.config.default_includes = '**'
或者您可以尝试为 render
方法提供 include
选项:
render json: session, include: ["user.project"]
在我的 rails 项目中,我有一个用户序列化程序:
class UserSerializer < ActiveModel::Serializer
attributes ...
has_one :project
has_many :sessions
end
还有一个用于会话:
class SessionSerializer < ActiveModel::Serializer
attributes ...
belongs_to :user
end
因此,如果我 return 来自任何控制器的会话:
render json: session
我得到类似的东西:
{ "session": {
"user: { ... }
...
}
但是用户不包含该项目,因为我猜它太深了,那么我该如何包含它呢?
您可以配置 default_includes
个 AMS
以进行更深层次的嵌套
# config/initializers/active_model_serializer.rb
ActiveModel::Serializer.config.default_includes = '**'
或者您可以尝试为 render
方法提供 include
选项:
render json: session, include: ["user.project"]