web-dev-qa-db-ja.com

Rails 3.1でコンパスを使用する方法

私は検索して検索しましたが、Rails 3.1でコンパスを使用するには、Gemfileを次のように編集するだけで済みました。

gem 'compass', :git => 'https://github.com/chriseppstein/compass.git', :branch => 'Rails31'
gem 'sass-Rails', "~> 3.1.0.rc"

はい私はそれを理解していますが、次に何をしますか?私が見たすべてのチュートリアルはそれだけを言っています、特定のフォークを使用してください。しかし、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でcompass.rbを追加しようとしましたが、html5-boilerplateが必要ですが、それでもエラーが発生し続けます。

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 compileコンパイルするものはありません。新しいプロジェクトを開始しようとしている場合は、ディレクトリ引数を省略しています。 「compass -h」を実行すると、ヘルプが表示されます。

すでに述べたように、compass.rbはすでに編集しているため、これをどのように行うかについてはまだ困惑しています。何か助けは?

35
corroded

他の回答のソリューションは、Compassの最新バージョンv0.12で非推奨になりました。これには、Railsアプリで動作するアダプターが必要です。Compassの作者であるChris Eppsteinは、インストール手順を示していますgithub上:
https://github.com/compass/compass-Rails

このアダプタはRailsバージョン2.3以降をサポートしています)

6
Lokesh Dhakar

[〜#〜] update [〜#〜]:より良い方法があるようです!
ソース: http://spin.atomicobject.com/2011/07/12/sass-sprockets-compass-with-Rails-3-1/

PDATE 2(2011年12月2日):Compassの作成者であるChris Eppsteinが、コンパスとRails 3.1を統合する方法のGithub Gistを投稿しました: https: //Gist.github.com/1184843

Livereloadを使用すると、コンパイル時の速度が大幅に向上することに気付いたので、今ではこの方法を好みます。


私の方法:
(現在は非推奨と考えていますが、場合によっては役立つ可能性があるため、参照用としてここに示します:)

まず、Gemfileに次を追加します。

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-syntaxバージョン「//」で置き換える必要があります。各行の始まり)

次に、コンパスとブループリントのミックスインが機能するかどうかをテストするために、同じファイルapplication.css.sassにコードを追加します。

@import compass
@import _blueprint
body
  background: black
  +linear-gradient(color-stops(white, black))
  +column(5)

Railsサーバーを

bundle exec Rails server

ブラウザにアプリをロードし、 にアクセスしますhttp:// localhost:3000/assets/application.css

すべてがうまくいけば、コンパイルされたコードが表示されるはずです。

ソース:

http://blog.pixarea.com/2011/07/using-compass-blueprint-semantic-and-sass-syntax-in-Rails-3-1/

33
Daniel R

コンパスユーザーグループのPeter Gumesonが、この問題の修正を指摘しました。

https://groups.google.com/forum/#!msg/compass-users/mU5HBt8TCIg/2Rt7iSESTSAJ

これが彼のメッセージです。

こんにちは一団。このgithubの問題が役立つかもしれません。 https://github.com/sporkd/compass-html5-boilerplate/issues/19

今はEdgeでほぼすべてを実行しています。したがって、私のgemfileは次のようになります。

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によると、変更されたブランチ

1
corroded

コンパスディレクトリをダウンロードしてvendor/assets/stylesheetsにダンプできるので、ディレクトリ構造はvendor/assets/stylesheets/compassになります。次に、メインアプリケーションのスタイルシートに、必要なコンパスミックスインアスを含めます@include compass/reset;

0
Bangline