【问题标题】:bcrypt error: Devise ruby 2.0 and rails 4.0bcrypt 错误:设计 ruby​​ 2.0 和 rails 4.0
【发布时间】:2013-06-01 11:16:32
【问题描述】:

当我尝试运行我的应用程序时,我不断收到此错误:

C:/ruby-2.0.0-p195-i386-mingw32/lib/ruby/gems/2.0.0/gems/activesupport-4.0.0.rc1 /lib/active_support/dependencies.rb:228:in `require': 无法加载此类文件 -- 2 .0/bcrypt_ext (加载错误)

有接受者吗? - 我正在尝试使用设计 gem 进行基本用户身份验证..

【问题讨论】:

  • 您是否尝试过重新安装 bcrypt-ruby gem?
  • 同样的设置也有同样的问题。

标签: ruby-on-rails ruby devise gem bcrypt


【解决方案1】:

当我在 Windows 上更新到 Ruby 2.0.0+ 时出现此错误。我能够通过卸载下载的所有版本的 bcrypt 并使用 DevKit 构建 gem 来解决它。

gem uninstall bcrypt-ruby

gem install bcrypt-ruby --platform=ruby --no-ri --no-rdoc

通常执行bundle update 会下载预编译的gem mingw32 扩展,在这种情况下似乎不起作用。希望将来不再需要这种重新安装 bcrypt-ruby 的解决方法。

此外,我在此处更新了 Ruby on Rails 的 Windows 安装说明(主要供我自己参考),用于在 Windows 上安装 Ruby on Rails。

https://github.com/remomueller/documentation/tree/master/windows

此处还列出了您可能遇到的其他一些 Windows 陷阱:

https://github.com/remomueller/documentation/blob/master/windows/190-miscellaneous.md

【讨论】:

  • 这可行,但是当您执行bundle install 时它将被覆盖。我通过从 github 安装解决了它。
  • 谢谢 Remo,我必须捆绑安装,然后删除 bcrypt gem 并按照您的说明进行安装。
  • 有时需要获取 bcrypt-ruby-3.0.1 - 只需执行gem install bcrypt-ruby -v 3.0.1 --platform=ruby --no-ri --no-rdoc
  • BTW:gem uninstall bcrypt-ruby 并选择 -x86-mingw32 版本卸载即可。
  • 它仍然有效,只有 bcrypt-ruby 将其名称更改为 bcrypt。我很高兴它仍然有效。
【解决方案2】:

在解决此问题之前,最好的解决方法是从 git 安装 bcrypt-ruby

gem 'bcrypt-ruby', git: 'https://github.com/codahale/bcrypt-ruby.git', :require => 'bcrypt'

更新(2016 年 6 月。) - 提到了 as @gneribcrypt-ruby 将其名称更改为 bcrypt,因此请使用:

gem 'bcrypt', git: 'https://github.com/codahale/bcrypt-ruby.git', :require => 'bcrypt'

【讨论】:

    【解决方案3】:

    关于 Window 7 上 has_secure_password 的问题对此有帮助

    gem uninstall bcrypt-ruby

    gem uninstall bcrypt

    gem install bcrypt-ruby --platform=ruby --no-ri --no-rdoc

    gem install bcrypt --platform=ruby --no-ri --no-rdoc

    添加到 Gemfile:

    gem 'bcrypt-ruby', '~> 3.0.0', :require => 'bcrypt'
    gem 'bcrypt'
    

    bundle install

    【讨论】:

      【解决方案4】:

      原来是我使用的 ruby​​ 版本有问题。我使用的是 ruby​​ 2(32 位)。

      但如果您切换到 ruby​​ 2 的 64 位版本,错误就会消失。

      【讨论】:

        【解决方案5】:

        似乎使用 Windows 作为 ROR 应用程序的开发平台的失败。我需要使用 Ruby 2.0 32 位才能使 PG gem 使 postgresql 连接正常工作,或者我必须使用 Ruby 2.0 64 位才能使“设计” gem 工作。

        【讨论】:

        • 我从来没有遇到过这个问题;我早在第一个 beta 版本时就使用过 Rails 4,而且从来不需要在 Windows 上切换 32 位/64 位 Ruby 来让任一 gem 工作......
        • 它也发生在 Ubuntu 上:\
        【解决方案6】:

        新版本的 bundler 刚刚问世。现在是关于 x64 gems

        gem install bundler -v '1.4.0.pre.2'
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-17
          • 2013-10-10
          • 2016-10-09
          • 2013-05-15
          • 2015-10-06
          • 1970-01-01
          • 1970-01-01
          • 2016-02-21
          相关资源
          最近更新 更多