2

我知道您通过键入“bundle init”从命令行创建了一个 Gemfile。但是如何创建 config.ru 文件和 Rakefile?

4

1 回答 1

10

Kristine,真正的问题不是如何创建,而是为什么要创建它们。

这三个文件有三种不同的用途,Ruby 应用程序不需要这些文件即可启动:

  • Gemfile(以及它的伴侣Gemfile.lock,由第一个生成bundle install,应该像另一个一样安全地保存)——这是你最常遇到的一个。

    它属于并由一个名为Bundler的工具使用。它是一个依赖管理工具。当您的应用程序需要一些名为“gem”的其他库时,您可以将其列在您的Gemfile, dobundle install和稍后运行您的应用程序时,例如bundle exec ruby yourapp.rbBundler 会以这样的方式处理环境,您的应用程序总是获得相同版本的您设计它以获得的宝石(这些版本实际上存储在Gemfile.lock文件中,您可以在那里查看)。

    您可以轻松地不使用 Bundler,但坚持使用某些 gem 版本通常是有意义的。这就是人们通常使用它的原因。我强烈建议您查看该工具的网站。

  • config.ru – 这对于 Web 应用程序非常常见。这是一个机架配置文件。在 Ruby 世界 Web 服务器 API 中有一个广泛传播的称为 Rack。它支持将 Web 应用程序(如 Rails 应用程序或 Sinatra 应用程序)与底层 Web 应用程序服务器(如 Thin、Unicorn 或 WEBrick)分离。

    尽管您当然可以自己创建它,但您肯定不需要这样做。在我必须实际执行此操作之前,我的 Ruby/Rails 经验已经走了很长一段路。通常,当您通过调用创建新的 Rails 应用程序时,该文件会被引导rails new

    而香草命令行 Ruby 应用程序只是不需要它。

  • Rakefile – 这又是一个相当广泛的野兽。什么Makefile是为了makeRakefile就是为了rake。Rake 是一个 Ruby 工具,用于从命令行描述和调用某些任务。例如,当你这样做时bundle exec rake db:migrate,你实际上启动了一个由 Rakefile 描述的任务。

    您可以轻松地设计自己的任务,但是当您开始使用 Rails 时,您通常不需要这样做。rails new为您删除一个 Rakefile 就足够开始了,除非您正在做一些真正的自定义(例如,应该涉及从命令行调用您的 Rails 应用程序代码),否则没有必要摆弄它。

    不用说,如果你正在做一些简单的 Ruby 控制台应用程序,它只询问你的名字并打招呼,你也不需要这个文件。

希望这可以帮助您解决这个问题并顺利进入 Rails 世界!

于 2015-07-20T03:35:19.827 回答