更新时间:2023-09-28 23:27:58
由于需要与默认序列化程序不同的属性,我有一个控制器需要在其中指定序列化程序.
I have a controller that I need to specify the serializer in, due to wanting different attributes from the default serializer.
在控制器中:
def index
search = User.ransack(search_params)
render json: search.result, each_serializer: MembershipRenewalSerializer::MemberSerializer
end
那么,为了使事情顺利进行,如果您指定each_serializer
选项会发生什么?
So, just to get things working, what happens if you specify the each_serializer
option?
外部控制器:
ActiveModel::SerializableResource.new(
User.first(2),
each_serializer: MembershipRenewalSerializer::MemberSerializer
).to_json
请注意,如果不指定each_serializer
,则SerializableResource
将使用UserSerializer
.
Note, that without specifying each_serializer
, SerializableResource
would use the UserSerializer
.
@admins数据似乎发生了一些奇怪的事情.
It looks like there is something weird happening with the @admins data.
尝试转换为数组:
ActiveModel::SerializableResource.new(@admins.to_a).to_json
要对数组进行分页,请尝试以下操作:
To paginate your array, try the following:
@search = Admin.search(params[:q])
@results = @search.result(:distinct => true).to_a
@admins = Kaminari.paginate_array(@results).page(params[:page]).per(10)