Я устанавливаю этот UserSerializer
class UserSerializer < ActiveModel::Serializer
attributes :id, :first_name, :last_name, :email, :abilities
delegate :current_user, to: :scope
delegate :current_client, to: :scope
def abilities
object.client_roles.where(client_id: current_client.id)
end
end
и это из моего ApplicationController
class ApplicationController < ActionController::Base
serialization_scope :view_context
protected
def current_client
....
Я вставил код «делегата» на основе этой рельсовой трансляции около 7:45.
Затем он говорит, что недостатком является то, что тесты теперь нуждаются в view_context, и предлагает решение для использования Test Unit.
Когда я запускаю свои спецификации, я получаю одну из двух ошибок
Сбой/ошибка: get "show", :id => user.id, :format => :json NoMethodError: undefined method `current_client' для #‹#:0x00000004f69f60>
or
Сбой/ошибка: data.active_model_serializer.new(data, {:root => name}).to_json RuntimeError: UserSerializer#current_client делегирован в scope.current_client, но область действия равна нулю:
Как указать view_context в спецификациях моего контроллера?
Спасибо.