Для этого вам просто нужно правильно настроить свои модели, создать почтовую ассоциацию. Также вам нужно переопределить метод пользовательского поиска из devise, для этого вам нужно переопределить метод self.find_for_database_authentication (условия).
class User < ActiveRecord::Base
has_many :emails
accepts_nested_attributes_for :emails
...
def self.find_for_database_authentication(conditions)
email = conditions.first
self.where(:emails=>{:name=>email})
end
end
Также вы должны добавить электронные письма на ваш devise.rb, чтобы использовать его.
Devise.setup do |config|
...
config.authentication_keys = [ :emails ]
...
end
Я не запускал код, возможно, в нем есть ошибки, но я надеюсь, что вы поняли идею. Пожалуйста, дайте мне знать, что-то не ясно.
Приветствия.
Обновление
Первый вопрос: Да, метод из устройства будет переопределен автоматически.
Второй вопрос: Вы должны иметь your_application_path / config / initializers / devise.rb
Я думаю, что он создан, когда вы используете камень для разработки. Если у вас нет, вы можете создать его. Содержание, которое я указал, хорошее, просто опустите точки (...)