【发布时间】:2011-07-17 19:34:14
【问题描述】:
我想编写一个 gem,一旦捆绑到 Rails 3.1 Gemfile 中,就会包含一些样板 CSS 和 JS 文件。
我知道生成器,但是没有它们我怎么能做到这一点,以便可以添加和删除 gem 的效果,而无需在 Rails Gemfile 中编辑一行之外的任何东西?
理想情况下,我希望 gem 在安装时包含其默认的 CSS/JS,然后让用户使用生成器生成 CSS/JS 文件,如果他们想进行任何修改。
这是我从 jquery-rails 复制的示例 gem,其中包括没有生成器的 javascript 文件。
css_gem/
lib/
css_gem.rb {1}
css_gem/
engine.rb {2}
app/
assets/
stylesheets/
css_gem/
index.css {3}
base.css {4}
{1} lib/css_gem.rb
module CssGem
require "css_gem/engine"
end
{2} lib/css_gem/engine.rb
module CSSGem
class Engine < Rails::Engine
end
end
{3} app/assets/stylesheets/css_gem/index.css
/*
*= require base
*/
{4} app/assets/stylesheets/css_gem/base.css
.custom { color: red; }
Rails 宝石文件
gem 'css_gem', :path => 'path_to_my_local_gem'
这对我不起作用,Rails 看不到 CSS 文件。我做错了什么?
解决方案:幸好我找到了一个视频来握住我的手:http://house9.blogspot.com/2011/06/rails-31-asset-gem.html
我仍然必须手动将*= require css_gem 添加到我的 Rails 样式表清单 (app/assets/stylesheets/application.css)。呵呵。
【问题讨论】:
标签: ruby-on-rails gem ruby-on-rails-3.1