我不想要电子邮件只签署手机号码来注册用户并使用devise gem登录。我从config / initializers / devise.rb中删除了电子邮件:
答案 0 :(得分:4)
这是设计的validate.rb文件的link 。你可以看到一个方法email_required?在模型中。所以我想
def email_required?
false
end
您需要将上面的方法放在model.rb文件中。
您还需要对用户表稍作修改。默认情况下,Devise不允许电子邮件字段为空。创建并运行更改允许电子邮件为空的迁移
# in console
rails g migration AddChangeColumnNullToUserEmail
# migration file
class AddChangeColumnNullToUserEmail < ActiveRecord::Migration
def self.up
change_column :users, :email, :string, :null => true
end
def self.down
change_column :users, :email, :string, :null => false
end
end
答案 1 :(得分:3)
您可以使用this指南,但使用mobile
代替username
除外。 e.g。
在devise.rb中:
config.authentication_keys = [:mobile]
在您的控制器中:
.permit(:mobile)
将电子邮件字段更改为app/views/devise/sessions/new.html.erb
和app/views/devise/registrations/new.html.erb
在devise.en.yml:
invalid: 'Invalid mobile number or password.'
not_found_in_database: 'Invalid mobile number or password.'
答案 2 :(得分:1)
作为@divyang答案的补充。您还应该删除unset(CMAKE_BUILD_TYPE CACHE)
表上的email's
索引...
users