所以附加视图中显示的coffeescript代码在我的Rails 4.2.0视图中运行没有问题,但是在Rails 5.1.2升级中打破了显示的消息:我已经升级了下面显示的gem:
coffee-rails from 4.1.0 to 4.2.2
coffee-script-source from 1.9.0 to 1.12.2
haml_coffee_assets总是指向master分支,如下所示,所以没有更改:
gem 'haml_coffee_assets', git: "https://github.com/netzpirat/haml_coffee_assets"
在我开始做出疯狂的改变之前,我想看看是否有其他人遇到过类似的问题。我正在摆脱coffeescript,转而使用我新版Rails应用程序中的普通javascript,并且嵌入式javascript代码没有任何问题。但是,这是一个较旧的应用程序,没有大量使用,我想投入最少的时间来维护它。其中有太多的Coffeescript代码可供我轻松转换。如果有一个网站让我将coffeescript转换为Javascript而没有太多问题,那么我想。最好的解决方案就是继续保持我的目标。
有没有人遇到这个问题?有什么想法吗?
以下是代码:
- 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 :(得分:0)
所以我以实际的方式解决了这个问题。鉴于我必须在我的应用程序中删除CoffeeScript代码并将其替换为等效的Javascript代码,我执行了以下操作:
我在haml页面中嵌入了CoffeeScript代码的所有页面,如我在上面提供的代码中所示,我将其替换为等效的Javascript代码,如下所示:
:javascript
$(function() {
...
});
请注意,我离开了纯粹的' coffeescript文件,即扩展名为“.coffee'存储在assets / javascript / ...'单独的文件夹,因为我更直接的目标是尽快完成Rails 5.1.2升级。
由于某些我不知道的原因(我也不知道),嵌入式coffeescript代码不再适用于我,就像在Rails 4.2.0版本中那样。但由于我不再关心CoffeeScript,这种混合解决方案对我来说是可以接受的。