我試圖創建一個Rails應用程序模板,當我跑我的代碼塊中有Rails應用程序模板運行的代碼和異常觸發擬合
file 'config/sass.rb', <<-RUBY
Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths|
load_paths << "#{Rails.root}/app/assets/stylesheets"
load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end
RUBY
「新軌道」這個模板,我得到了以下錯誤:
undefined method `root' for Rails:Module (NoMethodError)
我是新來的應用程序模板以及此代碼塊語法。 (你甚至稱之爲< < -RUBY block?在google上搜索真的很難)。這是我的印象,它不會運行塊內的任何代碼,所以它不應該導致錯誤。是什麼賦予了?
UPDATE:我再補充一些背景:
我想在這裏修改應用程序模板:https://github.com/leshill/rails3-app/blob/master/app.rb我想從這個博客中添加代碼:http://metaskills.net/2011/05/18/use-compass-sass-framework-files-with-the-rails-3.1-asset-pipeline/,這樣我可以在Rails3中羅盤的支持。 1
'<< - RUBY'構造被稱爲「heredoc」,這是Bourne Shell(AKA'/ bin/sh')中語法的起源(AFAIK)。 – 2011-06-11 00:12:48