我正在设置我的第一个Rails 4.1应用程序,它附带Spring,这是他们的新预加载器。当我尝试使用他们的生成器($ rails generate devise:install
)安装Devise时,命令行只是挂起而没有生成任何内容。
如果我从gem文件中删除Spring并再试一次,则Devise生成器可以正常工作。
任何人都有见解?
答案 0 :(得分:31)
检查当时正在处理的其他一些项目的目录,很可能是生成的文件在那里结束。
当你一次使用多个rails应用程序时,春天似乎感到困惑。这可能是导致你的问题的原因spring作为服务器运行并保持加载rails环境。我认为发生的事情是,如果你一次使用多个项目,那么spring系统似乎会混淆并使用错误的环境。
我遇到的情况是我在一个项目中运行rails g ...
并且文件是在另一个项目中生成的。令人抓狂的是我一直在重命名并移动其他文件夹,但仍然是生成器继续将文件放在该文件夹中。好像春天已经锁定在那个文件夹的inode上。
尝试DISABLE_SPRING=1 rails g devise:install
或ps aux |grep spring
并终止您看到的所有流程,然后运行rails g devise:install
我们暂时从Gemfile
取出春天,而这种破坏的行为仍然存在,并且将来使用rails new --skip-spring
如果您想继续使用spring,请尝试遵循这些规则
rails new blog
,请对其进行处理,然后再次mv blog blog.old
和rails new blog
,则可能无效。答案 1 :(得分:7)
您可以通过传递环境变量$ rails
来禁用任何DISABLE_SPRING=1
命令的spring。
$ DISABLE_SPRING=1 rails generate devise:install
或者,您可以尝试$ spring stop
来降低弹簧过程。之后运行$ rails generate
将启动一个新的弹簧过程,这可能会解决临时问题。
答案 2 :(得分:3)
rails 5.1.4对于响应者宝石存在同样的问题
我列出了以前的解决方案:
DISABLE_SPRING=1 bundle exec rails generate responders:install
export DISABLE_SPRING=1
ps ax | grep spring | grep YOUR_APP_NAME | cut -f1 -d' ' | xargs kill
答案 3 :(得分:1)
这是一篇很老的帖子,但我认为我的经历可能有助于某些人......
rails 5.0.1
在我搞砸了一些设计生成的文件(我是铁杆和学习的新手)后,我遇到了同样的问题,而且我尝试使用rails destroy devise模型而且卡住了,尝试了很多次,没有任何效果。
用谷歌搜索,来到这里,尝试排除春天的宝石,它起作用,再次添加了春天宝石,并且设计再次被卡在一切。我刚刚关闭了终端并打开了新终端,但它确实有效。