我尝试按照某些教程实现简单授权。
class AuthController < ApplicationController
layout 'public'
def auth_user
user = User.authenticate(login_params)
if user
session[:user_id] = user.id
redirect_to(:action => 'home')
else
flash[:notice] = "wrong username or password"
flash[:color]= "invalid"
render "login"
end
end
private
def login_params
params.require(:login_data, :password)
end
end
并在params.require处获得异常,说明错误的参数数量(2对1)&#39;。 无法理解,我做错了什么? rails 4.1.1
答案 0 :(得分:2)
require
方法,或更具体地说ActionController::Parameters#require
,只将param键作为参数。
从Rails 4.1.1源代码中可以看出:
# File actionpack/lib/action_controller/metal/strong_parameters.rb, line 172
def require(key)
self[key].presence || raise(ParameterMissing.new(key))
end