0
我有我的app/controllers
设立这样目录下:api/v1/sessions_controller.rb
我再有一个BaseController
:api/v1/base_controller.rb
命名错误的轨道 - 创建API控制器
我然后设置每个类看成这样:
module Api
module V1
class BaseController < ApplicationController
respond_to :json
before_action :default_json
protected
def default_json
request.format = :json if params[:format].nil?
end
def auth_only!
render :json: {}, status: 401 unless current_user
end
end
end
end
然后会话:
module Api
module V1
class SessionsController < BaseController
def create
user = User.authenticate(params[:user_name], params[:password])
if sign_in(user)
set_up_cookie(user)
render json: create_session_data, status: 201
else
invalid_user_crendentials
end
end
end
end
end
测试都设置了同样的方式,例如会话测试:
require 'spec_helper'
describe Api::V1::SessionsController do
before(:each) do
@user = FactoryGirl.create(:user)
end
context "Create a session" do
it "should NOT create a session" do
post :create
response.response_code.should == 401
end
end
end
的错误:
'<module:V1>': uninitialized constant Api::V1::BaseController (NameError)
同样的错误:' '':未初始化不断阿比:: V1 :: BaseController(NameError)' –
TheWebs
你也尝试添加了BaseController完整的类路径就像在我评论? (只要确保在我看起来更深之前) – jstim