Veja como fazer com que a autenticação http básica funcione em rails com o devise:
devise.rb
config.http_authenticatable = true
application_controller.rb
before_filter :authenticate
def authenticate
authenticate_or_request_with_http_basic do |email, password|
user = User.where(email: email).first
!user.nil? && user.valid_password?(password)
end
warden.custom_failure! if performed?
end