Общие ресурсы для разных контроллеров ресурсов

#ruby-on-rails #jsonapi-resources #jsonapi-utils

#ruby-on-rails #jsonapi-ресурсы

Вопрос:

jsonapi-utils ( jsonapi-resources ) требуется сериализатор (ресурс) для каждого ResourceController

Пример

 class FooController < JsonapiController
  def create
    # some code
  end
end

class BarController < JsonapiController
  def create
    # some code
  end
end
 

В этом примере BarController следует использовать FooResource . Можно ли определить сериализатор?

Комментарии:

1. Я не знаю, есть ли менее хакерский способ, но вы могли бы определить def resource_klass_name; 'FooResource'; end; BarController , что это переопределит исходный источник реализации

Ответ №1:

Вы можете просто указать класс вручную, реализовав resource_class метод:

 class BarController < JsonapiController
  def create
    # some code
  end

  private

  def resource_klass
    @resource_class ||= FooResource
  end
end