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

Rya*_*arn 4 ruby dns heroku ruby-on-rails-3.2

我试图通过我的Ruby on Rails应用程序与第三方服务集成,该应用程序的地址只能由某些DNS服务器解析.

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

Rya*_*arn 6

找到了一种替代应用程序范围内的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'
Run Code Online (Sandbox Code Playgroud)

使用Ruby 2.0测试,但我相信它也适用于1.9.文件位置指令是特定于Rails的,但代码应该适用于任何Ruby项目.

  • `class << Resolv`应该只是`class Resolv`如果你正在修补它.然后将该方法声明为`self.use_google_dns`. (3认同)