Resolv.getaddress不解析在/ etc / host中具有条目的FQDN

时间:2014-07-08 11:36:35

标签: ruby-on-rails ruby

我使用Ruby版本:2.0。在rails应用程序中使用时,函数Resolv.getaddress(fqdn)将返回以下错误。

    Parameters: {"fqdn"=>"1kzdm.scalsoln.in"}
    Completed 500 Internal Server Error in 64ms

    Resolv::ResolvError (no address for 1kzdm.scalsoln.in):

我在/ etc / hosts中有此主机的条目,并且可以使用ping解析。 如何使Resolv.getaddress()函数读取/ etc / hosts文件中的条目?

1 个答案:

答案 0 :(得分:0)

它应该像你期望的那样工作 - 它在我的机器上运行。

但是,

Resolve::Hosts在每个分辨率上都没有在/ etc / hosts中读取。它在第一个分辨率上读取文件,然后缓存以用于后续调用。也许您只需要重新启动服务器进程以强制重新加载/ etc / hosts文件?

要解决缓存问题(即始终使用非缓存数据解析),每次要查找内容时都可以创建一个新的Resolv实例:

Resolv.new.getaddress("1kzdm.scalsoln.in")

(请注意其中的new)。