我可以修改Ruby on Rails应用程序的DNS设置吗?

我可以修改Ruby on Rails应用程序的DNS设置吗?,ruby,heroku,ruby-on-rails-3.2,dns,Ruby,Heroku,Ruby On Rails 3.2,Dns,我正试图通过RubyonRails应用程序与第三方服务集成,该应用程序的地址只能由一些DNS服务器解析 有没有办法告诉我的应用程序使用哪个DNS服务器进行查找?通用Ruby解决方案或Heroku特定解决方案都可以。找到了一种方法来替代整个应用程序范围内的DNS解析器 使用以下命令创建config/initializers/dns.rb: class << Resolv def use_google_dns remove_const :DefaultResolver

我正试图通过RubyonRails应用程序与第三方服务集成,该应用程序的地址只能由一些DNS服务器解析


有没有办法告诉我的应用程序使用哪个DNS服务器进行查找?通用Ruby解决方案或Heroku特定解决方案都可以。

找到了一种方法来替代整个应用程序范围内的DNS解析器

使用以下命令创建
config/initializers/dns.rb

class << Resolv

  def use_google_dns
    remove_const :DefaultResolver
    const_set :DefaultResolver, self.new(
      [Resolv::Hosts.new, Resolv::DNS.new(nameserver: ['8.8.8.8', '8.8.4.4'], search: ['mydns.com'], ndots: 1)]
    )
  end

end

Resolv.use_google_dns
require 'resolv-replace'

class您不需要取消常量定义,而是使用Resolv::DefaultResolver.replace_解析器:

Resolv::DefaultResolver.replace\u解析器([
Resolv::Hosts.new,
解析::DNS.new(
名称服务器:['8.8.8.8','8.8.4.4'],
搜索:['mydns.com'],
NDOT:1
)
])
需要“解决替换”
当我尝试这个时,我得到了“未定义的方法
替换\u解析器”
(ruby 2.0.0-p451,rails 3.2.17)。知道为什么吗?让我觉得它应该在那里。