2017-08-31 56 views
0

因此,附加视图中显示的coffeescript代码在我的Rails 4.2.0视图中运行时没有问题,但在Rails 5.1.2中突破升级与显示的信息:我已经升级如下所示的宝石:Rails从4.2.0升级到5.1.2导致下面的coffeescript代码中断

coffee-rails from 4.1.0 to 4.2.2 
coffee-script-source from 1.9.0 to 1.12.2 

而且haml_coffee_assets一直指着主分支如下图所示所以没有变化有:

gem 'haml_coffee_assets', git: "https://github.com/netzpirat/haml_coffee_assets" 

之前,我开始做出疯狂的改变,我想看看是否有其他人遇到过类似的问题。我正在转移从coffeescript赞成在我的新Rails应用程序中的普通JavaScript,并没有嵌入式JavaScript代码的问题。但是,这是一个较旧的应用程序,并未大量使用,我希望投入最少的时间来维护它。它有太多的Coffeescript代码可供我轻松转换。如果有一个网站可以让我将coffeescript转换成Javascript而没有太多问题,那么我想。最好的解决办法就是继续前进。

coffeescript compile error

有没有人遇到这个问题?有任何想法吗?

下面是代码:

- if @well.has_sense_graph? 
    #sensitivity.tab 
    = render :partial => "shared_wells/show_sensitivity", :locals => {:sensitivity => sense_hash[:sensitivity], :offset => sense_hash[:offset] } 
    %br 
    #discount_chart 

:coffeescript 
    $ -> 
    model = new Backbone.Model 
     forecastTickInterval: #{graph_hash[:forecast_tick_interval]} 
     typeWell: #{@well.to_json} 
     x_labels: #{graph_hash[:price_array]} 
     disc_rate_array: #{graph_hash[:disc_rate_array]} 
     disc_pv10_array: #{graph_hash[:disc_pv10_array]} 
     ngl_array: #{ngl_vol_array} 
    view = new VGStream.Views.TypeWells.Show(
     model: model 
    ).render() 
    VGStream.App.router = new VGStream.Routers.Tabs() 
    VGStream.App.currentView = view 
    Backbone.history.start() 
    _.defer -> 
     $(document).scrollTop(0) 
+0

您可以发布正在执行的咖啡代码吗? – MrYoshiji

+0

请发布代码而不是图片 – engineersmnky

+0

'render:partial =>“shared_wells/show_sensitivity”'render coffescript?否则,你需要逃避它。 – max

回答

0

所以我以务实的方式解决了这个问题。考虑到我必须摆脱我的应用程序中的CoffeeScript代码并将其替换为等效的Javascript代码,我做了以下操作:

所有页面中我已经在haml页面中嵌入了CoffeeScript代码,如代码中所示我已经提供了,我有相当的Javascript代码代替,如下所示:

:javascript 

    $(function() { 
    ... 
    }); 

注意,我离开了“纯”的CoffeeScript文件,即扩展名为“.coffee”存储在资产/ JavaScript的/ .. 。'文件夹,因为我的更直接的目标是尽快完成Rails 5.1.2升级。

由于某些原因,我不知道(我也不知道),嵌入式coffeescript代码不再像我在Rails 4.2.0版本中那样工作。但由于我不再关心CoffeeScript,这种混合解决方案对我来说是可以接受的。

相关问题