/ / Неможливо отримати Rails 3.1, Compass, Sass, Blueprint, що працює на Heroku Cedar - ruby-on-рейлі, heroku, ruby-on-rail-3.1

Не вдається отримати Rails 3.1, Compass, Sass, Blueprint, що працює на Heroku Cedar - ruby-on-рейлі, heroku, ruby-on-rail-3.1

Здебільшого я пішов за наведеним напрямком тут

Який призводить до наступної помилки, яка надходить від ініціалізатора, який він попросив створити:

from /app/config/initializers/sass.rb:1:in `<top (required)>"
2011-09-05T16:45:42+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/railties-    3.1.0/lib/rails/railtie/configuration.rb:78:in `method_missing": undefined method `sass" for #  <Rails::Application::Configuration:0x00000003845528> (NoMethodError)

Сторінка Heroku на початку роботи не дуже багатодопоможе теж. Це в основному ті самі вказівки тільки без ініціалізатора. Однак без цього, він не може знайти якийсь матеріал, так що я все ще не можу почати.

Хтось там, хто зробив це далі, ніж у мене?

Редагувати для отримання додаткової історії:

Я пройшов ряд помилок, щоб приїхати сюди такЯ вирішив, що я повинен все це написати. Перша проблема у мене полягала в тому, що в html5-boilerplate було: активів, що означало, що метод ie_html не був знайдено, тому я витягнув це з: активів.

Це призвело до цієї помилки, оскільки html5-boilerplate залежить від компаса:

2011-09-05T17:15:47+00:00 app[web.1]:    /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-b7f44a48d375/lib/compass/version.rb:56:in   `const_missing": uninitialized constant Compass::Frameworks (NameError)
2011-09-05T17:15:47+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/bundler/gems/compass-html5-boilerplate-405f9ddbca56/lib/html5-boilerplate.rb:1:in `<top (required)>"

Відповіді:

9 для відповіді № 1

Врешті-решт, остаточним рішенням було також зробити глобальні (або, принаймні, як би це було). Я начебто відчуваю, що я, нарешті, отримав це для роботи за принципом співіснування, але ось це.

Я витягнув компас з:активів і зробив це глобальним теж. Це призвело до помилок при складанні файлів SCSS, які врешті-решт привели мене до оновлення до Ceder, що призвело до помилок помилок у проекті.

Нарешті, я додав ініціалізатор, який, на мою думку, призначений для того, щоб додати конфігураційний матеріал для компаса. Сподіваюся, що все допомагає.

Ось відповідний код:

gem "heroku"
gem "haml"
gem "compass", :git => "git://github.com/chriseppstein/compass.git"
gem "html5-boilerplate", :git => "git://github.com/sporkd/compass-html5-boilerplate.git"
gem "sass-rails", "  ~> 3.1.0"

Зверніть увагу на версії github для компаса та html5-boilerplate (вам не потрібен h5bp, якщо ви не використовуєте його).

Ініціалізатор:

Rails.configuration.sass.tap do |config|
config.load_paths << "#{Gem.loaded_specs["compass"].full_gem_path}/frameworks/compass/stylesheets"
end

1 для відповіді № 2

Проблема полягає в тому, що бігові доріжки мають бути глобальними, але щось у вашому глобальному наборі залежить від бігових поручень.

Для мене рішення було перемістити компас в групу активів.


0 для відповіді № 3

Я тут поставив кілька докладних інструкцій: http://www.mattvanhorn.com/2012/01/07/heroku-cedar-assets-ruby-1-9/

Вона охоплює отримання основної програми Rails 3.1 з компасом, що працює на стеку Heroku Cedar.

Є також посилання на github repo ( http://github.com/mattvanhorn/placepanda/commits ), так що ви можете послідовно йти крок за кроком.

Можливо, вам доведеться також додати load_paths у application.rb, якщо ви використовуєте проект. Я використовую щебет-завантажувач на іншому додатку, як це, і я отримав:

if Rails.configuration.respond_to?(:sass)
config.sass.load_paths << "#{Gem.loaded_specs["compass"].full_gem_path}/frameworks/compass/stylesheets"
config.sass.load_paths << "#{Gem.loaded_specs["compass_twitter_bootstrap"].full_gem_path}/lib/../stylesheets"
end

в моєму application.rb умовно полягає в тому, щоб заборонити Heroku від перерви при запуску, коли config.sass більше не буде доступний, як це потрібно для попередньої компіляції.