轨道4不检测应用(Rails 4 doesn't detect application)

2019-08-16 22:28发布

更新到Rails 4后,我试图启动服务器,但它不会启动。 简单地说,应用程序似乎并没有得到“检测”,好像有在那里没有应用。

~ $ bundle exec rails server
Usage:
  rails new APP_PATH [options]

Options:
  -r, [--ruby=PATH]              # Path to the Ruby binary of your choice
                                 # Default: /app/vendor/ruby-2.0.0/bin/ruby
  -b, [--builder=BUILDER]        # Path to some application builder (...
  -m, [--template=TEMPLATE]      # Path to some application template (...
      [--skip-gemfile]           # Don't create a Gemfile
  -B, [--skip-bundle]            # Don't run bundle install

什么是奇怪的是,(旧的)系统的宝石将使其开始就好了,但与捆扎机。

为什么不Rails的开始呢?

我试图导航CLI的源代码,但我不能抓地力是怎么回事。

(使用边缘轨道4.0.0.beta和Ruby 2.0.0.rc)

在你想知道的情况下,这里的目录列表:

~ $ ls
app  config db    Gemfile   lib  mock    Rakefile   script  tmp
bin  config.ru  features  Gemfile.lock  log  public  README.md  spec    vendor

Answer 1:

轨道4做了改变,它启动了道路。

幸运的是,你不必运行rails-new ,因为对于一个方便的任务。

轨道4点发布说明 :

6.1值得注意的变化

  • 你的应用程序的可执行文件现在住在bin/目录。 运行rake rails:update:bin获得bin/bundlebin/railsbin/rake


Answer 2:

大多数情况下,我已经有我自己的懒惰。 (虽然懒惰是效率之母; O))我做了点运行时,不使用捆绑 Rails的服务器。

轨道4.0.0.beta 改变它启动了道路 。 但是,因为我是用Rails的我的“老”的版本,旧的4.0.0-β我已经躺在我当地的宝石周围,这并没有改变,我没有当变化来作出通知我束。

现在,当来到部署的时候,强制bundle-exec无法启动,因为我的代码是用来启动旧的方式。

解决方案

不喜欢有消息称于: bundle exec rails new . 。 并使用捆绑这一次! 在这一点上,Rails会生成样板的东西,即缺少启动文件,如./bin/rails

它也将更新一些配置文件,并试图覆盖一些东西。 就我而言,一切都签入源代码控制,所以有位diff'ing并选择是否覆盖或不和后恢复的。

也许一个更好的主意(我没有打扰到)将在Git中分支出来,运行“升级” rails-new ,覆盖了一切,提交这个,然后三路合并回主分支。



Answer 3:

如果你的bin文件夹已经到位,你可能只需要运行bundle install第一。 这解决了这个问题对我来说克隆在另一台机器上完美的工作回购之后。



文章来源: Rails 4 doesn't detect application