gpt4 book ai didi

ruby-on-rails - Rails App 中 application.rb 文件说明

转载 作者:行者123 更新时间:2023-12-04 05:49:55 24 4
gpt4 key购买 nike

我试图更深入地了解 Rails 应用程序的初始化方式。我正在查看 配置/应用程序.rb 文件,我对这三行感到困惑:

require_relative 'boot'

require 'rails/all'

Bundler.require(*Rails.groups)

据我所知,所有这三行都在加载 Rails 应用程序使用的 gem。 boot.rb 似乎像 一样加载所有 gem Bundler.require(*Rails.groups) .为什么需要所有三行代码?

最佳答案

大多数情况下是正确的,您可以通过在运行中的 Rails 应用程序中一次禁用一行来验证“需要”什么。

  • require_relative 'boot' : 应用程序仍在运行。
  • require 'rails/all' :未在我的 Gemfile 中列出的 gem 的方法未找到错误(Rails' built-ins 之一(需要 'rails/all')
  • Bundler.require(*Rails.groups) : 从 Gemfile 中找不到 gem 的方法。

  • 因此,第二个和第三个是独立且必不可少的。 boot.rb 调用 捆绑器/设置 不能代替其他两个,因为它的功能实际上是 clean the load path通过确保只包含 Gemfile gems,并删除其他所有内容。见 Bundler setup source的最后一行.因此,当应用程序运行时,它可能会在运行时访问您不打算包含的其他 gem,并且当另一个仅安装 Gemfile 依赖项的用户可能会失败时,会给您一种错误的感觉,即该应用程序正在运行。

    因此,您可能在短期内只获得第二个和第三个,但肯定希望所有这三个都可以用于其他人有一天可能必须执行的任何事情。开销很小,所以我不会删除任何这些。

    关于ruby-on-rails - Rails App 中 application.rb 文件说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54858765/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com