我正在设置我的第一个 Rails 4.1 应用程序,它带有 Spring,他们的新预加载器。当我尝试使用他们的生成器 ( $ rails generate devise:install
) 安装 Devise 时,命令行只是挂起并且没有生成任何内容。
如果我从 gem 文件中删除 Spring 并重试,Devise 生成器就会工作。
任何人有任何见解?
我正在设置我的第一个 Rails 4.1 应用程序,它带有 Spring,他们的新预加载器。当我尝试使用他们的生成器 ( $ rails generate devise:install
) 安装 Devise 时,命令行只是挂起并且没有生成任何内容。
如果我从 gem 文件中删除 Spring 并重试,Devise 生成器就会工作。
任何人有任何见解?
检查您当时正在处理的其他一些项目的目录,很可能生成的文件最终在那里。
当您一次使用多个 Rails 应用程序时,spring 似乎会感到困惑。这可能是导致您的问题的原因
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
如果您想继续使用弹簧,请尝试遵循这些规则
rails new blog
了,就在它上面工作,然后一遍mv blog blog.old
又rails new blog
一遍,它可能不起作用。$ rails
您可以通过传递环境变量为任何命令禁用 spring DISABLE_SPRING=1
。
$ DISABLE_SPRING=1 rails generate devise:install
或者,您可以尝试$ spring stop
降低弹簧进程。之后运行$ rails generate
将启动一个新的 spring 进程,这可能会解决临时问题。
对于响应者 gem,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
这是一个旧帖子,但我认为我的经验可能会对某人有所帮助......
轨道 5.0.1
在我弄乱了一些设计生成的文件(我是 Rails 和学习的新手)之后,我遇到了同样的问题,然后我尝试使用 rails destroy devise 模型并且我被卡住了,尝试了很多次但没有任何效果。
谷歌搜索,到这里,尝试排除弹簧宝石,它工作,再次添加弹簧宝石,并且设计再次卡在所有东西上。
我刚刚关闭了终端并打开了新终端,它工作正常。