2017-07-20 2 views
1

J'ai un contrôleurSpécifiez une option supplémentaire sur rendre appel par défaut sur toutes les actions de l'indice

class Api::V1::InvoicesController < ApplicationController 

    def index 
    @invoices = Invoice.all 

    render json: @invoices, each_serializer: Api::V1::InvoicePreviewSerializer 
    end 
end 

Sur chaque contrôleur i sera précise que le sérialiseur utilisé est le nom espacé avec Api::V1::

Puis nom du modèle suivi du nom du modèle suivi de PreviewSerializer

Comment puis-je, sur le contrôleur d'application, spécifier que pour chaque action d'index, ajouter each_serializer: Api::V1::MODEL_NAMEPreviewController?

Répondre

2

Je n'ai pas testé, mais je pense que cela devrait fonctionner comme ceci:

# in the ApplicationController 
def render(*args) 
    if action_name == 'index' 
    options = args.extract_options! 
    options[:each_serializer] = Api::V1::InvoicePreviewSerializer 
    args << options 
    end 

    super(*args) 
end 

L'espoir qui fonctionne et aide!

+0

A travaillé un régal. Merci! –