删除设计宝石中的电子邮件字段?

时间:2017-02-20 05:33:45

标签: ruby-on-rails

我不想要电子邮件只签署手机号码来注册用户并使用devise gem登录。我从config / initializers / devise.rb中删除了电子邮件:

3 个答案:

答案 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.erbapp/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