我正在jRuby上使用Rails开发一个项目。一切都很好,直到一个奇怪的问题触发了一个内部服务器错误。奇怪的是,在某些情况下,它加载得很好,尽管代码没有任何变化。
它起源于这行:
<%= stylesheet_link_tag 'application', media: 'all' %>
,错误是:
undefined method `_parse' for Java::JavaUtil::Date:Class
堆栈跟踪的前几行如下:
<home_dir>/.rvm/rubies/jruby-1.7.10/lib/ruby/1.9/time.rb:265:in `parse'
sprockets (2.11.0) lib/sprockets/processed_asset.rb:79:in `initialize'
sprockets (2.11.0) lib/sprockets/processed_asset.rb:47:in `init_with'
org/jruby/RubyArray.java:2409:in `map'
sprockets (2.11.0) lib/sprockets/processed_asset.rb:46:in `init_with'
sprockets (2.11.0) lib/sprockets/asset.rb:24:in `from_hash'
sprockets (2.11.0) lib/sprockets/caching.rb:54:in `cache_asset'
sprockets (2.11.0) lib/sprockets/index.rb:93:in `build_asset'
sprockets (2.11.0) lib/sprockets/base.rb:287:in `find_asset'
sprockets (2.11.0) lib/sprockets/index.rb:61:in `find_asset'
...
作为一般的问题解决,我已经尝试删除所有最新的样式表和javascript文件。已禁用turbolinks
,但问题仍然存在。
有人遇到过这个问题吗?有什么建议如何克服,甚至如何绕过这个问题吗?
Rails版本:4.1.4jRuby版本:jRuby 1.7.10 (1.9.3p392)
你很可能在你的代码中有一个import java.util.Date
或类似的java_import Java::JavaUtil::Date
,它将Ruby Date
常数替换为另一个…