具体参见 http://stackoverflow.com/questions/3900180/no-such-file-to-load-bcrypt-ext-via-devise
讲一下我碰到的情况,说是无法load 2.0 bcrypt
原因很简单我用的是 ruby 2.0
而gem在安装 bcrypt_ext的时候在lib 文件夹下只安装了1.8和1.9的,把2.0给忘了。多么伟大的错误,搞了我半个小时没了。
而在bcrypt_ext.rb里面又是这么写的
RUBY_VERSION =~/(\d+.\d+)/ require "#{$1}/bcrypt_ext"
说白了就是把1.8,1.9等挖出来,然后去找bcrypt_ext,所以没有办法,自己做个2.0的文件夹,把重新编译过的bcrypt_ext.so放进去,世界太平了。
后记:
本来不想和bcrypt斗,devise缺省用这货,然后我们把config/initializers/devise.rb的
config.encryptor改了,不用bcrypt,结果还逃不过这牲口,一个劲的报错,最后只好灭了这丫。
所以DHH这神说rails不适合初学者是有道理的,基本上初学者不是转行就被逼疯了,尤其是windows上的。