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

克隆Hartl的Rails示例项目后执行rails db:migrate遇bcrypt_ext加载错误

解决Rails执行rails db:migrate时的bcrypt_ext加载错误

我之前帮不少Windows环境下的Rails开发者解决过这个问题,这个bcrypt_ext加载失败本质是bcrypt gem的原生C扩展编译或加载出了问题,尤其是Windows系统下容易出现这类兼容性问题,给你几个靠谱的解决方案:

  • 重新安装bcrypt gem,修复原生扩展
    先卸载现有版本,再重新安装适配Windows的版本:

    gem uninstall bcrypt
    gem install bcrypt --platform=ruby
    

    如果你的项目用bundler管理,也可以直接执行:

    bundle update bcrypt
    

    或者强制重新安装所有依赖:

    bundle install --force
    
  • 锁定兼容的bcrypt版本
    有时候新版本的bcrypt和旧版Rails(比如你用的4.x版本)兼容性不好,你可以修改Gemfile里的bcrypt声明,指定一个稳定兼容的版本:

    gem 'bcrypt', '~> 3.1.11'
    

    修改后执行bundle install更新依赖。

  • 改用纯Ruby版本的bcrypt
    如果原生扩展始终有问题,可以强制使用纯Ruby实现的bcrypt,不需要编译C扩展。修改Gemfile:

    gem 'bcrypt', platforms: :ruby
    

    执行bundle install后,再尝试运行rails db:migrate。

  • 检查Ruby DevKit配置(Windows专属)
    Windows下编译原生gem依赖需要Ruby DevKit,如果没配置好会导致扩展编译失败。确保你已经安装了对应Ruby版本的DevKit,并且执行过以下命令完成配置:

    ruby dk.rb init
    ruby dk.rb install
    

按照上面的步骤试一遍,应该能解决这个加载错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:00:53