Heroku の遅延ジョブでこのエラーが表示されますが、意味がありません。
{uninitialized constant Less::Engine
(in /app/app/assets/stylesheets/share_and_earn_recommendation_email.css.less)
/app/vendor/bundle/ruby/1.9.1/gems/tilt-1.3.3/lib/tilt/css.rb:60:in `prepare'
...
なぜ意味がないのですか?css.rb
次のように見えるためです。
def prepare
if ::Less.const_defined? :Engine
@engine = ::Less::Engine.new(data) # line 60
else
...
Less::Engine
つまり、が定義されていない場合、60 行目に到達することはできません。私は何が欠けていますか?
編集
heroku コンソールからのさらに優れたデモンストレーション:
irb(main):008:0> ::Less.const_defined? :Engine
=> true
irb(main):009:0> ::Less::Engine
NameError: uninitialized constant Less::Engine
編集2
もっと面白くなります:
irb(main):011:0> ::Less.const_defined? :Engine, false
=> false
違いは、後者は祖先を検索しないことです。しかし、祖先は存在しないため、違いはありません。
irb(main):012:0> ::Less.ancestors
=> [Less]