gpt4 book ai didi

ruby-on-rails - Rails 3.2.8,heroku:未初始化常量 Less::Engine

转载 作者:数据小太阳 更新时间:2023-10-29 07:38:10 25 4
gpt4 key购买 nike

我在 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]

最佳答案

如果您最近刚刚升级了 3.2.x 堆栈中的 Rails 版本,您会发现 less 在早期版本(如 3.2.2)中“存在”,而在更高版本(如 3.2.9)中则不存在。

我还没有完全调查这个问题,但我注意到当我从 3.2.2 升级到 3.2.9 时,我遇到了一些“较少”的问题。

干杯

关于ruby-on-rails - Rails 3.2.8,heroku:未初始化常量 Less::Engine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13977162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com