Невозможно получить Rails 3.1, Compass, Sass, Blueprint, работающий на Heroku Cedar - PullRequest
5 голосов
/ 05 сентября 2011

По большей части я следовал указанному направлению здесь

Это привело к следующей ошибке, исходящей от инициализатора, который он попросил меня создать:

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-шаблон был в: assets, что означало, что метод ie_html не был найден, поэтому я вытащил его из: assets

Это привело к этой ошибке, потому что html5-шаблон зависит от компаса:

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)>'

Ответы [ 3 ]

9 голосов
/ 05 сентября 2011

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

Я вытащил компас из ресурсов и сделал его тоже глобальным.Это привело к ошибкам при компиляции файлов 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-шаблон (вам не нужен h5bp, если вы его не используете)).

Инициализатор:

Rails.configuration.sass.tap do |config|
  config.load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end
1 голос
/ 12 сентября 2011

Проблема не в том, что sass-rails должны быть глобальными, а в том, что что-то в вашем глобальном наборе зависит от sass-rails.

Для меня решение заключалось в перемещении компаса в группу активов.

0 голосов
/ 08 января 2012

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

В нем описывается получение базового приложения на Rails 3.1 с платформой Compass, работающей в стеке Heroku Cedar.

Есть также ссылки нарепозиторий github (http://github.com/mattvanhorn/placepanda/commits), чтобы вы могли шаг за шагом следовать за коммитами.

Возможно, вам также понадобится добавить load_paths в application.rb, если вы используете blueprint.Я использую Twitter-загрузку в другом приложении, подобном этому, и у меня есть:

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 больше не будетдоступно как есть для предварительной компиляции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...