使用
hostname
:
if local_request? || `hostname` =~ /heroku/i
我刚刚做了类似的事情,用一个方法检查数据库适配器,以解释我的开发环境和Heroku之间的差异。这是我的
lib/adapter.rb
:
class Adapter
cattr_reader :adapter
def self.postgres?
@@adapter ||= Rails.configuration.database_configuration[Rails.env]['adapter']
adapter == 'postgresql'
end
def self.mysql?
@@adapter ||= Rails.configuration.database_configuration[Rails.env]['adapter']
adapter == 'mysql'
end
def self.sqlite?
@@adapter ||= Rails.configuration.database_configuration[Rails.env]['adapter']
adapter.include?('sqlite')
end
end
注意,除此之外,您还必须更改
application.rb
lib
已添加到自动加载路径:
config.autoload_paths += Dir["#{config.root}/lib/**/"] # include all subdirectories