我正在使用序列化程序(Rspec)处理undefined method 'authenticate' for nil:NilClass
请求。
API / users_controller_spec.rb
require 'rails_helper'
describe Api::V1::UsersController, type: :controller do
describe "GET #show" do
context "with valid credentials" do
let!(:application) { create(:doorkeeper_application) } # OAuth application
let!(:user) { create(:user) }
let!(:token) { create(:doorkeeper_access_token, application_id: application.id, resource_owner_id: user.id) }
before do
allow(controller).to receive(:doorkeeper_token) {token}
end
context 'and valid request' do
before(:each) do
get :show, format: :json
@json = JSON.parse(response.body)
end
it "returns the user with 'id'" do
expect(@json["id"]).to_not be_nil
end
end
end
end
end
串行器/ user_serializer.rb
class UserSerializer < ActiveModel::Serializer
attributes :id, :uid, :name, :email
end
答案 0 :(得分:1)
原来我需要的是将serialization_scope :view_context
添加到我的ApplicationController
但我在观看有关宝石的精彩铁路广播时才发现它:http://railscasts.com/episodes/409-active-model-serializers?view=asciicast
不要使用active_model_serializer&gt; 0.9.x否则会破坏生产。 https://github.com/rails-api/active_model_serializers/commit/0d31e72d2211b6bf7f0b0420139c4b370d6e986e https://github.com/rails-api/active_model_serializers/issues/139