我已經開始爲我的rails應用程序創建一個Api。我目前創建會話控制器日誌。會話Api,undefined方法downcase
但由於某些原因,我得到這個錯誤
NoMethodError
in Api::V1::SessionsController#create
undefined method `downcase' for nil:NilClass;
我不理解爲什麼會這樣。我也在我的傳統會話控制器中使用了downcase方法,而我沒有這個問題。
API控制器
module Api
module V1
class SessionsController < ApplicationController
skip_before_filter :verify_authenticity_token,
:if => Proc.new { |c| c.request.format == 'application/json' }
respond_to :json
def create
user = User.find_by_email(params[:session][:email].downcase)
if user && user.authenticate(params[:session][:password])
sign_in user
end
render :status => 200,
:json => { :success => true,
:info => "Logged In Successfully",
:data => { } }
end
end
end
end
控制器
class SessionsController < ApplicationController
def create
user = User.find_by_email(params[:session][:email].downcase) ###THIS WORKS FINE
if user && user.authenticate(params[:session][:password])
sign_in user
redirect_to publishers_path
end
end
end
ROUTES
# API Routes
namespace :api, defaults: {format: 'json'} do
scope module: :v1, constraints: ApiConstraints.new(version: 1, default: true) do
resources :sessions, only: [:new, :create, :destroy]
end
end
檢查你是否有任何時髦的白色空格後。 – BroiSatse 2014-08-29 22:24:51
是的,我不,它的確很奇怪...... – 2014-08-29 22:28:17
哦,你的編輯很需要。 'params [:session] [:email]'是零,所以這就是爲什麼你的失敗失敗。由於它是一個API,您應該確實在檢查以確保人們向您傳遞成功撥打電話所需的所有有效數據。 – JTG 2014-08-29 22:29:53