Ruby on rails 3.1 如何在rails 3.1中使用指南针

Ruby on rails 3.1 如何在rails 3.1中使用指南针,ruby-on-rails-3.1,compass-sass,Ruby On Rails 3.1,Compass Sass,我搜索了又搜索,我所能看到的是,将compass与rails 3.1结合使用只需编辑GEM文件,如下所示: gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'rails31' gem 'sass-rails', "~> 3.1.0.rc" 是的,我明白,但是接下来呢?我看到的每一篇教程都是这么说的,用那个叉子。但是我在使用compass和rails 3.1时仍然

我搜索了又搜索,我所能看到的是,将compass与rails 3.1结合使用只需编辑GEM文件,如下所示:

gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'rails31'
gem 'sass-rails', "~> 3.1.0.rc"
是的,我明白,但是接下来呢?我看到的每一篇教程都是这么说的,用那个叉子。但是我在使用compass和rails 3.1时仍然遇到问题

我这样做:

$ compass init rails . --syntax sass
  directory ./app/stylesheets/ 
  create ./config/compass.rb 
  create ./app/stylesheets/screen.sass 
  create ./app/stylesheets/print.sass 
  create ./app/stylesheets/ie.sass
由于3.1现在正在使用资产,我只是将所有这些文件转移到3.1。另外,我正在使用compass-960插件,那么我在哪里需要它呢?我尝试使用require 960和require html5样板添加compass.rb,但仍然不断出现错误:

Error compiling asset application.css:
NoMethodError: undefined method `Error' for Compass:Module
  (in /Users/eumir/rails_apps/kiseki/app/assets/stylesheets/screen.sass)

NoMethodError (undefined method `Error' for Compass:Module
(in /Users/eumir/rails_apps/kiseki/app/assets/stylesheets/screen.sass)):
我试着进行compass编译,结果是:

$compass编译 没有要编译的东西。如果您正试图启动一个新项目,那么您已经省去了directory参数。 运行“compass-h”以获得帮助


正如我所说的,我已经编辑了compass.rb,所以我仍然不知道该如何处理这个问题。有什么帮助吗?

您可以下载compass目录,将其转储到
供应商/资产/样式表
中,这样您的目录结构就是
供应商/资产/样式表/指南针
,然后从主应用程序样式表中包括所需的指南针混合组件
@包括指南针/重置

更新:似乎有更好的方法
资料来源:

更新2(2011年12月2日):Compass的创建者Chris Eppstein发布了如何将Compass与Rails 3.1集成的Github要点:

我现在更喜欢这种方法,因为我注意到在使用livereload时,编译速度有了很大的提高


我的方法:
(我现在认为它是被贬低的,但在某些情况下它可能有用,所以这里是供参考的)< /P> 首先,在文件中添加:

gem "compass", "~> 0.12.alpha.0"
别忘了执行一个命令

bundle update
然后,在config/application.rb中:

config.generators.stylesheet_engine = :sass
将application.css.scss重命名为application.css.sass,或创建它,并将其内容替换为:

@import compass
@import _blueprint
(如果希望在样式表的开头保留新的Rails 3.1清单代码,则必须在每行的开头用sass语法版本“//”替换“/**/”注释)

现在,要测试compass和blueprint的混合是否有效,请在同一文件application.css.sass中添加一些代码:

@import compass
@import _blueprint
body
  background: black
  +linear-gradient(color-stops(white, black))
  +column(5)
使用运行rails服务器

bundle exec rails server
在浏览器中加载应用程序,然后访问

如果一切顺利,您应该可以看到编译后的代码

来源:


compass用户组的Peter Gumeson为我指出了一个解决方案:

以下是他的信息:

嗨,刚。这个github问题可能会有所帮助。

我现在几乎把一切都搞得焦头烂额。所以我的档案 看起来像这样:

gem 'rails',     :git => 'git://github.com/rails/rails.git'
gem 'sass-rails', '~> 3.1.0.rc2'
gem 'haml', :git => 'git://github.com/nex3/haml.git'
gem 'haml-rails'
gem "compass", :git => "git://github.com/chriseppstein/compass.git", :tag => "0.12.alpha.0"
gem 'compass-html5', :git => 'git://github.com/sporkd/compass-html5.git'
我现在正在研究rails发电机,所以不应该太晚 很远。但这至少能让你走

彼得


*choonkeat所说的更改分支其他答案中的解决方案在Compass的最新版本v0.12中不受欢迎,该版本需要适配器才能与rails应用程序一起使用。Compass作者Chris Eppstein在github上发布了安装说明:



此适配器支持rails 2.3及更高版本

不确定,但如果没有大量的黑客,我认为它在3.1上还不能工作。我今天成功升级了我的应用程序(它使用compass)-记录了它使用Rails 3.1 rc6从app/assets/stylesheets下的application.scss导入它不起作用支持我的答案使用compass gem版本“0.12.alpha.0”而不是分支“rails31”更新了我的答案:有一种新的更好的方法,查看提供的链接。compass的chris eppstein现在发布了如何将compass集成到3.1的另一个更好的方法:希望您不介意我更新您的答案:)我将链接添加到chris的gistbranch
rails31
中。尝试
gem“compass”,:git=>“git://github.com/chriseppstein/compass.git“,:tag=>0.12.alpha.0”
。现在。
:tag=>“0.12.alpha.0”
对我来说不起作用,但是
:tag=>“v0.12.alpha.0”
滴滴测试了这个问题,但它似乎是rails 3.1.0的bug,是的,斯科特在我创建问题时确认了这一点。它适用于rails 3.1.3,而不是3.1.0。我认为链轮存在一些遗留问题