我一直在尝试将用户身份验证作为我正在开发的CMS的一部分,并且在将Devise与自定义字段集成时遇到了问题。表单正确显示但是当我尝试创建一个新用户时,我得到一个未授权的终端错误,并且没有对象被提交给数据库。
使用Rails 5.1.4和Devise 4.3.0
我的代码错误:
来自终端的错误消息
Started PUT "/users" for 127.0.0.1 at 2017-12-28 18:23:36 -0500
Processing by Devise::RegistrationsController#update as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"CY2/3DW9B6WYypeIlKtB/mTgNgvViZDw94FIwZGyl0ORcrmoEW1Ez/I0FAnpjZNU8aUd5uRJFOMUyM0azyTipA==", "user"=>{"firstname"=>"firstname", "lastname"=>"lastname", "classyear"=>"WG19", "email"=>"email@email.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"Create Account"}
Completed 401 Unauthorized in 2ms (ActiveRecord: 0.0ms)
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:firstname,:lastname,:classyear])
end
end
的routes.rb
Rails.application.routes.draw do
devise_for :users
resources :users
resources :assets
resources :departments
resources :courses do
member do
get :new_course_by_department
end
end
root 'pages#index'
end
initalizers / devise.rb
Devise.setup do |config|
...
...
config.authentication_keys = [ :email ]
end