Я бы хотел, чтобы не требовалось электронное письмо для подписания только мобильного номера для регистрации пользователя и входа в систему с использованием оригинального драгоценного камня. Я удалил адрес электронной почты из config/initializers/devise.rb:Удалить поле электронной почты в разработке gem?
ответ
Это файл 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
Вы можете использовать руководство 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.'
U необходимо изменить config.authentication_keys = [ :phone_number ]
Это зависит от того, как сохранить его в вашей БД и в форме изменить f.email_field
на f.text_field
, что и должно быть.
Нет, это неправильно –
Вы проверили https://github.com/plataformatec/devise/wiki/How-To:-Allow-users-to-sign-in- using-their-username-or-email-address, вы можете использовать 'mobile number' вместо' username' –