我已经设计出一个新的应用程序并设计了可验证的ldap。然后,我按照他们的Wiki操作方法使用电子邮件或用户名登录。现在,我收到“ SQLException:无此类列:users.login”错误。
我已经尝试了在stackoverflow上可以找到的所有东西,但是没有任何效果。
application_controller:
ViewController
user.rb
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_in, keys: [:login, :password])
end
devise.rb
attr_accessor :login
def self.find_for_database_authentication(warden_conditions)
conditions = warden_conditions.dup
login = conditions.delete(:login)
where(conditions).where(["lower(username) = :value OR lower(userPrincipalName) = :value", {value: login.strip.downcase}]).first
end
我希望我的用户使用他们的电子邮件(在我的情况下是userPrincipalName)或用户名登录。但是,当我尝试登录时,唯一得到的就是这个无列错误。
答案 0 :(得分:0)
此异常意味着,login
表的架构中没有users
列。 Devise仅生成一个“电子邮件”字段,默认情况下用作登录。
您可以通过以下方式轻松添加
rails g migration AddLoginToUsers login:string:index
rails db:migrate
然后您可以删除attr_accessor :login
部分,因为login
字段将自动可用。