为共享样式表创建gem并在Rails应用程序中使用它

时间:2012-11-30 09:32:44

标签: ruby-on-rails ruby gem stylesheet sass

我正在尝试创建一个gem来放置所有常见的样式表。我无法弄清楚如何在Rails应用程序中导入样式表。这是我到目前为止所做的(跟this guide之后):

  1. 我跑了bundle gem apple_core

  2. 我修改了apple_core.rb以包含这样的rails引擎类:

    require "apple_core/version"
    
    module AppleCore
      class Engine < Rails::Engine
      end
    end
    
  3. 我使用mkdir -p lib/apple_core/app/assets/stylesheets/apple_core创建了apple_core样式表目录。

  4. 我在apple_core stylesheets目录中创建了一个索引文件,并在其中添加了以下内容:

    /*
     *= require_self
     *= require_tree .
     */
    
  5. 我在同一目录中创建了一个test.css.scss文件并添加了:

    a
    {
      color: red;
    }
    
  6. 我为gem创建了一个GitHub存储库并推送它。

  7. 在我的Rails应用程序中,我将gem添加到资产组中的Gemfile中。

  8. 我跑了bundle install

  9. 我尝试使用@import "apple_core";将我的gem包含在我的一个文件中,但是当我尝试加载页面时收到couldn't find file 'apple_core'错误。我在这里缺少什么?

1 个答案:

答案 0 :(得分:5)

您只需镜像gem中的目录,就像它们在rails项目中一样。因此,您可以将资源投放到app/assetslib/assetsvendor/assets。然后,您必须确保这些文件包含在您的gemspec中,例如:

  s.files = Dir["{app,config,db,lib,vendor}/**/*"] + ["MIT-LICENSE", "Rakefile", "Readme.md"]

因此路径应为vendor/assets/stylesheets/apple_core