2017-02-20 1 views
3

Я бы хотел, чтобы не требовалось электронное письмо для подписания только мобильного номера для регистрации пользователя и входа в систему с использованием оригинального драгоценного камня. Я удалил адрес электронной почты из config/initializers/devise.rb:Удалить поле электронной почты в разработке gem?

+0

Вы проверили https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in- using-their-username-or-email-address, вы можете использовать 'mobile number' вместо' username' –

ответ

3

Это файл link в файле validate.rb. Вы можете увидеть метод 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 
3

Вы можете использовать руководство this, за исключением использования mobile вместо username. например

В 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.' 
0

U необходимо изменить config.authentication_keys = [ :phone_number ] Это зависит от того, как сохранить его в вашей БД и в форме изменить f.email_field на f.text_field, что и должно быть.

+0

Нет, это неправильно –

 Смежные вопросы

  • Нет связанных вопросов^_^