Rails 3 http_basic_authenticate_with仅在生产环境中?

有没有办法只使用

http_basic_authenticate_with :name => 'user', :password => 'secret' 

当服务器在生产模式下运行时?

是的,试试:

 class ApplicationController < ActionController::Base before_filter :authenticate def authenticate if Rails.env.production? authenticate_or_request_with_http_basic do |username, password| username == "user" && password == "%$§$§" end end end end 

只需将此添加到您的示例中

 http_basic_authenticate_with :name => 'user', :password => 'secret' if Rails.env.production? 
 authenticate_or_request_with_http_basic do |username, password| username == "user" && password == "secret" end if Rails.env.production?