我知道您通过键入“bundle init”从命令行创建了一个 Gemfile。但是如何创建 config.ru 文件和 Rakefile?
1 回答
Kristine,真正的问题不是如何创建,而是为什么要创建它们。
这三个文件有三种不同的用途,Ruby 应用程序不需要这些文件即可启动:
Gemfile(以及它的伴侣Gemfile.lock,由第一个生成
bundle install
,应该像另一个一样安全地保存)——这是你最常遇到的一个。它属于并由一个名为Bundler的工具使用。它是一个依赖管理工具。当您的应用程序需要一些名为“gem”的其他库时,您可以将其列在您的
Gemfile
, dobundle install
和稍后运行您的应用程序时,例如bundle exec ruby yourapp.rb
Bundler 会以这样的方式处理环境,您的应用程序总是获得相同版本的您设计它以获得的宝石(这些版本实际上存储在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
是为了make
,Rakefile
就是为了rake
。Rake 是一个 Ruby 工具,用于从命令行描述和调用某些任务。例如,当你这样做时bundle exec rake db:migrate
,你实际上启动了一个由 Rakefile 描述的任务。您可以轻松地设计自己的任务,但是当您开始使用 Rails 时,您通常不需要这样做。
rails new
为您删除一个 Rakefile 就足够开始了,除非您正在做一些真正的自定义(例如,应该涉及从命令行调用您的 Rails 应用程序代码),否则没有必要摆弄它。不用说,如果你正在做一些简单的 Ruby 控制台应用程序,它只询问你的名字并打招呼,你也不需要这个文件。
希望这可以帮助您解决这个问题并顺利进入 Rails 世界!