sta*_*ord 16 ruby-on-rails devise
我不想要使用设备登录电子邮件.我从config/initializers/devise.rb中删除了电子邮件:
config.authentication_keys = [ :login ]
Run Code Online (Sandbox Code Playgroud)
并将此添加到我的用户模型:
def email_required?
false
end
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试保存用户时,我收到此错误:
SQLite3::SQLException: users.email may not be NULL
Run Code Online (Sandbox Code Playgroud)
我想改变迁移中的某些内容吗?
Mau*_*aes 31
一些引用说你不应该删除:validatable
,因为它会删除密码验证.
就我而言,我email
从数据库中的用户中删除了该列,并且设计开始崩溃.我补充说:
# app/models/user.rb
def email_required?
false
end
def email_changed?
false
end
Run Code Online (Sandbox Code Playgroud)
它运作正常.
Vel*_*Les 17
看起来您将数据库中设置的电子邮件字段设置为"not NULL"或"Allow Null"为false.并且您直接从数据库收到错误.假设您的用户模型被称为用户,您需要添加以下迁移来修复:
change_column :users, :email, :string, :null => true
Run Code Online (Sandbox Code Playgroud)
文档:http: //apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column
归档时间: |
|
查看次数: |
8696 次 |
最近记录: |