有人可以向我解释一下 Rails 环境是什么以及它们做什么吗?我曾尝试研究自己,但找不到任何东西。据我收集,环境是:
- 发展
- 制作
- 测试
有人可以向我解释一下 Rails 环境是什么以及它们做什么吗?我曾尝试研究自己,但找不到任何东西。据我收集,环境是:
根据您在问题中提供的内容,您似乎在问:
“Rails 中的每个环境配置有什么区别?”
Rails 带有 3 种环境类型的软件包。每个都有自己的服务器、数据库和配置。有关可用选项的更多信息,请参阅Rails 指南:配置。
要设置 Rails 环境,您需要在命令行中输入:
export RAILS_ENV=<env>
在哪里<env>
可以是test
,development
或production
. 设置此环境变量至关重要,因为它将确定安装了哪些 gem,或者在运行rails console
或rails server
.
配置中包含用于应用程序的 gemset。运行时rails new
,您会发现一个 Gemfile 包含组test
、development
和production
. 这些组对应于当前设置的环境。当环境设置为其中之一时,运行bundle install
会安装与该组相关的所有 gem(以及未在组中列出的 gem)。
test
专为运行测试/规范而设计。这个数据库很可能是简单的,除了你可以在运行套件之前调用的种子。每次测试完成后,数据库将回滚到测试开始前的状态。我不建议启动rails server
,因为运行测试(通过 MiniTest 或 RSpec)将为您执行此操作,并在套件完成后关闭服务器。
development
允许您使用更大的数据库(通常是生产的克隆)“测试”您的应用程序。这使您可以在不中断生产(客户或最终用户将体验的版本)的情况下测试实际的真实数据。要查看实际的开发环境,请更改RAILS_ENV
并启动rails server
. 这有助于决定您希望页面的外观(CSS、HTML)。自己简单地“测试”您的应用程序也是一种很好的做法,单击以确保一切“看起来”良好并且 JavaScript 工作正常。
production
为客户和最终用户保留。配置包括应用程序的实际域、要使用的端口以及要运行的初始化程序或任务。你不想玩弄你的数据库,因为它可能会影响客户。理想情况下,应用程序应该尽可能地工作,因为这被认为是您的“最终产品”。
每个“环境”实际上只是一个配置。您可以在各种不同的模式下启动您的应用程序,这些模式被称为“环境”,因为它们以许多不同的方式影响应用程序的行为。但最终,它们只是配置。
顺便说一句,当你看起来“无处不在”时,你不可能看起来很努力,因为我只是用谷歌搜索了“rails 环境”,而最好的结果是这个
http://guides.rubyonrails.org/configuring.html
这是配置rails环境的官方解释。
这里有一些关于 Rails 环境的好读物
http://teotti.com/use-of-rails-environments/
和
https://signalvnoise.com/posts/3535-beyond-the-default-rails-environments
祝你好运 !!