1

I @admins zu JSON mit dem AdminSerializerGet kaminari Paginierung Links in der durch das aktive Modell Serializer erzeugt JSON

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

wo Admins ist >>@admins = @search.result(:distinct => true).page(params[:page][:number]).per(10) und @search = Admin.search(params[:q])

zu konvertieren Ich versuche Wenn ich ausführen Dieser Befehl >>ActiveModel::SerializableResource.new(@admins.to_a).as_json Ich bekomme die gewünschte JSON, aber die Paginierung Links fehlen von der JSON erhalten, wie sie beim Konvertieren der @admins zu Array mit to_a verloren gegangen sind. Allerdings, wenn ich render :json => @admins ausführen, bekomme ich die komplette JSON mit der Paginierung Links darin, wie der Screenshot unten inn: enter image description here

Antwort

3

Im latest commit verfügbar Sie verwenden müssen:

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

Thank a Tonne Honig! es funktioniert wie Charme :) – vipin8169

+0

Noch ein Zweifel, den ich habe, ist, @admins_json = ActiveModel :: SerializableResource.new (@ admins.to_a) .as_json' gibt mir ein JSON zurück, während die oben beschriebene Methode eine Zeichenfolge gibt, die Ich muss mit 'JSON.parse()' von Javascript analysieren. Muss ich to_json erneut aufrufen, um es in ein JSON zu konvertieren? – vipin8169