Devise не предусмотрел возможность вообще не иметь поля электронной почты, поэтому это должно быть сделано на уровне Rails.
К сожалению, Rails не предлагает способ удаления проверок, однако rails могут бытьрасширен, и это уже было сделано в этом плагине , просто взгляните на расширение active_record , оно довольно простое.
По сути, вы добавляете функции удаления проверкик active_record
module ActiveRecord
class Base
def self.clear_validations
@validate_callbacks = []
end
def self.remove_validation(sym)
@validate_callbacks.reject! {|validation| validation.options[:name] == sym}
end
def self.remove_validation_group(sym)
@validate_callbacks.reject! {|validation| validation.options[:group] == sym}
end
end
end
и расширить пользовательскую модель devise для удаления проверки электронной почты
require 'active_record_validation_extender'
module UserValidationExtender
def self.included(base)
base.class_eval do
base.remove_validation(:email)
end
end
end