You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下执行rails new myapp创建Rails应用时get_hosts_path报错问题

解决Windows下Rails运行时get_hosts_path未定义错误

在Windows系统中执行rails new myapp生成Rails应用,或是运行rails importmap:install等Rails命令时,可能会触发如下错误:

NoMethodError: undefined method `get_hosts_path' for module Win32::Resolv

(NoMethodError)
DefaultFileName = Win32::Resolv.get_hosts_path || IO::NULL
^^^^^^^^^^^^^^^ internal:C:/tools/ruby33/lib/ruby/site_ruby/3.3.0/rubygems/core_ext/kernel_require.rb:37:in `require'

该错误源于Ruby 3.3版本在Windows环境下的兼容性问题:Win32::Resolv模块移除了原本的get_hosts_path方法,但Rails相关组件仍在调用该方法。

修复方案

  • 临时修复:手动补充缺失方法
    找到Ruby安装目录下的win32/resolv.rb文件(示例路径:C:/tools/ruby33/lib/ruby/site_ruby/3.3.0/win32/resolv.rb),打开后在模块内添加以下代码:

    module Win32
      module Resolv
        def self.get_hosts_path
          File.join(ENV['SystemRoot'], 'System32', 'drivers', 'etc', 'hosts')
        end
      end
    end
    

    保存文件后重新执行Rails命令即可。

  • 长期解决方案:降级Ruby版本
    若不想修改Ruby核心文件,可将Ruby版本降级至3.2.x系列(该版本的Win32::Resolv模块仍保留get_hosts_path方法),再重新创建或运行Rails应用。

内容的提问来源于stack exchange,提问作者Richard_G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 08:47:36