我刚开始使用 Rails 4。我devise
设置了自定义字段。我注册后可以登录,但我无法从登录页面登录。用户注册进行得很好,我在数据库表中有等username
。password
有人可以告诉我我错过了什么吗?我的用户模型非常基本。这是它的样子 -
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
validates :username, :uniqueness => true, :presence => {:message => '- Username cannot be blank'}
validates :first_name, :presence => { :message => " - Firstname cannot be blank!"}
private
def user_params
params.require().permit(:first_name, :last_name, :username, :email, :password, :password_confirmation)
end
end
我检查了我的视图,并且传递了正确的参数。
我的应用程序控制器中有以下内容 -
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
layout :layout_by_resource
before_filter :configure_permitted_params, if: :devise_controller?
def layout_by_resource
if devise_controller?
"devise"
else
"application"
end
end
protected
def configure_permitted_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:username, :first_name, :last_name, :password, :password_confirmation, :email) }
end
end
我检查了数据库表,我确实有username
和password
(即encrypted_password)。我将身份验证密钥设置为username
.
不知道我在这里缺少什么。我有devise 3.0.0