代码之家  ›  专栏  ›  技术社区  ›  Anand Shah

如何找到宝石是否是图书馆?

  •  1
  • Anand Shah  · 技术社区  · 15 年前

    我尝试使用 config.gem 在environment.rb中的说明,以便当应用程序部署到新系统上时,可以处理丢失的gems问题 rake gems:install

    添加了我的应用程序所依赖的所需gems列表后,我的应用程序启动失败。如果我从environment.rb文件中删除所需gems的列表,应用程序将正常启动。

    在environment.rb中的评论说

    # You have to specify the :lib option for libraries, where the Gem name (sqlite3-ruby) differs from the file itself (sqlite3)
    

    我非常确定我缺少一个gems的:lib选项,如何找到gem是否是一个库以及它的库名称?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Lukas    15 年前

    我找到正确库(如果没有包含在自述文件中,我发现通常是这样的)的方法是运行

    宝石规格

    然后查看文件列表,尤其是在lib/目录中。通常,名字最接近宝石本身的那个就是我要找的那个。很明显,这不是100%可靠的,但它对我很有效。

    例如gem spec ruby plsql给出

    --- !ruby/object:Gem::Specification 
    name: ruby-plsql
    
    ....    
    
    extra_rdoc_files: 
    - History.txt
    - License.txt
    - README.txt
    files: 
    - History.txt
    - License.txt
    - README.txt
    - lib/oradate_patch.rb
    - lib/plsql/connection.rb
    - lib/plsql/jdbc_connection.rb
    - lib/plsql/oci_connection.rb
    - lib/plsql/package.rb
    - lib/plsql/procedure.rb
    - lib/plsql/schema.rb
    - lib/ruby_plsql.rb
    - lib/ruby_plsql/version.rb
    - spec/plsql/package_spec.rb
    - spec/plsql/procedure_spec.rb
    - spec/plsql/schema_spec.rb
    - spec/spec.opts
    - spec/spec_helper.rb
    has_rdoc: true
    homepage: http://ruby-plsql.rubyforge.org
    licenses: []
    
    ....
    
    rubyforge_project: ruby-plsql
    rubygems_version: 1.3.4
    signing_key: 
    specification_version: 2
    summary: ruby-plsql gem provides simple Ruby API for calling Oracle PL/SQL procedures.
    test_files: []
    

    我明白了

    lib/ruby plsql.rb

    既然gem名为ruby plsql,我想它可能是主要的lib文件。您还可以检查.gemspec文件以查看它的构建目标。

        2
  •  5
  •   John Feminella    15 年前

    不是有“图书馆宝石”和“非图书馆宝石”。而是铁轨自动 require 所有的宝石都是由 config.gem . Rails知道需要什么的方式就是使用 :lib . 如果您没有指定任何内容,它将尝试要求输入gem的名称。

    例如:

    config.gem 'simple-navigation'
    

    需要“简单导航”宝石,但不起作用。您必须指定:

    config.gem 'simple-navigation', :lib => 'simple_navigation'
    

    看看你需要的宝石的说明,看看它们的说明是否要求你需要不同的东西。(例如,如果其中一个包含连字符,则可能是结果中的下划线 :解放军 参考。)

        3
  •  1
  •   rogerdpack    15 年前

    需要帮助的宝石

        4
  •  1
  •   odigity    14 年前

    实际上,“gem contents”会列出gem中的文件,这将给您提供线索。