Согласно моим ручным проверкам и тестам, это в инициализаторе devise.rb достигает цели:
config.warden do |manager|
strategies = manager.default_strategies(:scope => :user)
strategies[strategies.index(:database_authenticatable)] = :alternative_strategy
end
И стратегия реализована таким образом (не является частью этого вопроса, но я нашел там противоречивую информацию, и именно эта работает для меня с использованием Rails 3.1, devise 1.4.7 и warden 1.0.5):
class AlternativeStrategy < Devise::Strategies::Authenticatable
def authenticate!
end
end
Warden::Strategies.add(:alternative_strategy, AlternativeStrategy)