如何让rails / coffee-rails gem使用最新的coffee-script编译器

时间:2014-02-25 10:24:52

标签: ruby-on-rails coffeescript asset-pipeline

我的咖啡脚本包含对对象的链式调用,在使用最新的编译器(手动)时可以正确编译,但在资产管道中使用rails / coffee-script工具时无法正确编译。

解决这个问题的最佳方法是什么?最好让它使用最新的咖啡编译器。

以下是我的咖啡脚本示例,带有链接的电话

// coffeescript
someObject
  .chainedMethod 'home', {
      paramA: 'a'
      paramB: 'b'
    }
  .chainedMethod 'signin', {
      paramA: 'xx'
      paramB: 'yy'
      controller: 'SignInController'
    }

正确编译后,它看起来像:

// javascript
someObject.chainedMethod('home', {
  paramA: 'a',
  paramB: 'b'
}).chainedMethod('signin', {
  paramA: 'xx',
  paramB: 'yy',
  controller: 'SignInController'
});

Rails 4.0资产管道产生以下内容:

// buggy javascript
someObject.chainedMethod('home', {
  paramA: 'a',
  paramB: 'b'
}.chainedMethod('signin', {
  paramA: 'xx',
  paramB: 'yy',
  controller: 'SignInController'
}));

1 个答案:

答案 0 :(得分:0)

经过一番挖掘,我设法通过升级coffee-script-source gem来解决这个问题。事实证明,rails / coffee-rails gem只是让底层咖啡脚本和咖啡脚本源宝石完成真正的工作。 coffee-script-source gem与http://coffeescript.org/

上的最新资源保持同步

运行bundle update coffee-script-source以获取最新版本并重新启动rails服务器解决了这个问题。

以下是修复后的gem版本。

coffee-script-source-1.7.0
coffee-script-2.2.0
coffee-rails-4.0.1