【问题标题】:Highlight Sinatra structure突出 Sinatra 结构
【发布时间】:2014-08-29 02:52:23
【问题描述】:

我实际上构建了一个 Sinatra 应用程序,我想在 Ruby/bundler 等中清除一些要点......

config.ru 上要求rubygems 是什么意思?很多人都这样做,但为什么呢?

同样的问题要求将bundler/setup 加入app.rb?有些人说它需要我们拥有的所有宝石到Gemfile,但这是真的吗? (在这种情况下,我们不必要求 sinatraactive_record...)。

我不太了解的最后一件事是要求。第一个入口点是config.ru。因此,如果我们先要求 rubygems 然后 ./app.rb,我们就不必要求 rubygems./app.rb,对吧?

【问题讨论】:

    标签: ruby rubygems sinatra bundler


    【解决方案1】:

    需要 config.ru 上的 ruby​​gems 怎么办?很多人都这样做,但为什么呢?

    没关系,因为自 Ruby v1.9 起,无论如何默认情况下都需要它。我检查了一个我正在做的项目,我把它放在顶部,所以它就在那里没有充分的理由!也许我现在会摆脱它……

    有关更多信息,请参阅http://www.rubyinside.com/why-using-require-rubygems-is-wrong-1478.html

    同样的问题是要求在 app.rb 中安装捆绑程序/设置?有些人说它需要我们拥有的所有宝石到 Gemfile 中,但这是真的吗? (在这种情况下,我们不需要 sinatra、active_record...)。

    是的,Bundler will handle require for you if you tell it to,但我实际上使用的是this style

    require 'rubygems'
    require 'bundler'
    Bundler.setup(:default, :ci)
    require 'nokogiri'
    

    因为我喜欢处理自己的 requires,它使测试(通常)更快、更具体,IMO。

    另请注意,来自链接的文档:

    对于另一种应用程序(例如 Sinatra 应用程序),您需要在尝试 require 任何 gem 之前设置 bundler。

    最后,

    第一个入口点是 config.ru。因此,如果我们需要 ruby​​gems 然后 ./app.rb,我们就不必在 ./app.rb 中需要 ruby​​gems,对吧?

    是的,require will only load a library once

    加载给定的名称,如果成功则返回 true,如果已加载该功能则返回 false。

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2021-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多