1

Я пытаюсь преобразовать @admins в JSON с помощью AdminSerializerПолучить Kaminari ссылки разбивки на страницы в формате JSON, созданного активной модели сериализатором

#app/serializers/admin_serializer.rb 
class AdminSerializer < ActiveModel::Serializer 
    attributes :id, :email, :access_locked? 
end 

где Админы является >>@admins = @search.result(:distinct => true).page(params[:page][:number]).per(10) и @search = Admin.search(params[:q])

Выполнения эта команда >>ActiveModel::SerializableResource.new(@admins.to_a).as_json Я получаю желаемый JSON, но ссылки с разбивкой по страницам отсутствуют в полученном JSON, поскольку они были потеряны при преобразовании @admins в массив с использованием to_a. Однако, когда я исполняю render :json => @admins, я получаю полный JSON с постраничной ссылки в нем, как показано гостиница скриншот ниже: enter image description here

ответ

3

В наличии latest commit вам нужно использовать:

resource = ActiveModel::SerializableResource.new(@admins) 
resource.to_json(serialization_context: ActiveModelSerializers::SerializationContext.new(request)) 
+0

отблагодарить тонный мед! он работал как charm :) – vipin8169

+0

Еще одно сомнение в том, что у меня есть: '@admins_json = ActiveModel :: SerializableResource.new (@ admins.to_a) .as_json' возвращает мне JSON, а описанный выше метод дает строку, которая Мне нужно проанализировать использование JSON.parse() 'javascript. мне нужно снова позвонить to_json, чтобы преобразовать его в JSON? – vipin8169