Ruby on Rails:rails生成控制器不起作用

时间:2014-06-07 10:30:30

标签: ruby-on-rails ruby

我是ruby和rails的新手,我在生成控制器方面遇到了问题。

某些背景信息:

$ rails -v
Rails 4.1.1

正确创建了应用:

$ rails new test_app
      create
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
[...]
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
         run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted

服务器运行良好:

$ rails server
=> Booting WEBrick
=> Rails 4.1.1 application starting in development on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
[2014-06-07 11:12:20] INFO  WEBrick 1.3.1
[2014-06-07 11:12:20] INFO  ruby 1.9.3 (2014-02-24) [x86_64-cygwin]
[2014-06-07 11:12:20] INFO  WEBrick::HTTPServer#start: pid=3340 port=3000

我可以浏览默认页面,但是当我尝试进入下一步时,它失败了:

$ rails generate controller welcome index

没有任何反应,也没有生成文件。根本没有输出,所以我不知道应该在哪里解决这个问题。

我已经尝试过创建一个全新的应用并重新安装rails,但这没有用。

6 个答案:

答案 0 :(得分:30)

尝试运行

spring stop

rails generate可能无效,因为spring已在运行。

答案 1 :(得分:1)

尝试运行rails generate controller Users new时,我在Windows计算机上遇到了同样的问题。

首先,确保弹簧没有运转。使用spring stop

停止它

如果它没有帮助那么:

  1. 转到您的Gemfile并注释掉下两行:gem 'spring' and gem 'spring-watcher-listen', '~> 2.0.0'
  2. 在您的终端中,运行:bundle update

答案 2 :(得分:0)

我运行了spring stop,它说它没有运行。

然后我做了一个bundle install,现在可以了。

答案 3 :(得分:0)

我正在使用rails 6,也为我工作。

答案 4 :(得分:0)

确保您位于正确的文件夹中,而不是环境中,例如~/environment/railsproject

我得到了错误,我忘记了cd railsproject

'spring'和'spring-watcher-listen'宝石仍然被安装。

答案 5 :(得分:-1)

我遇到了同样的问题。当我用ctl-c中止时,我得到了:

/usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `gets': Interrupt
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client/run.rb:54:in `verify_server_version'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client/run.rb:25:in `call'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client/rails.rb:23:in `call'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client/command.rb:7:in `call'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/client.rb:26:in `run'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/bin/spring:48:in `<top (required)>'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `load'
from /usr/local/rvm/gems/ruby-2.1.0/gems/spring-1.1.3/lib/spring/binstub.rb:11:in `<top (required)>'
from /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/share/yapo/bin/spring:16:in `<top (required)>'
from bin/rails:3:in `load'
from bin/rails:3:in `<main>'

所以我猜这个问题出现在春天的某个地方。我在Gemfile中评论了spring的行,运行了bundle update并且瞧。希望对你也有用。

也许对ruby有一点经验的人知道这是我/我们配置中的一些问题,还是一个bug?