我有 somefile.js.coffee.erb 文件,由Rails资产管道处理。我的ERB代码返回一些咖啡无法解析的字符串,导致SyntaxError异常。我想查看生成的 somefile.js.coffee 文件,或者通常是资产管道处理的任何中间文件。
我试图检查链轮没有运气:
environment = Sprockets::Environment.new
MyApplication::Application.config.assets.paths.each {|p| environment.append_path p}
rerb = environment['somefile.js.coffee.erb']
rerb.source #=> it's already preprocessed
或者查看 \ tmp \ cache \ assets ,但也只有预处理文件,另外还有指纹名称遮盖。
也许有办法挂钩资产管道我不知道怎么做..
为什么我需要ERB?使用KnockoutJS(https://github.com/dnagir/knockout-rails extended - > https://github.com/KrzysztofMadejski/knockout-rails)生成包含与Rails模型匹配的字段和验证的客户端模型存根。
我正在使用Rails'〜> 3.2.12',链轮(2.2.2)。
编辑:我最终在###评论中注入erb代码,在coffeescript文件仍处于编译状态时隐藏在生成的代码中:
###
<%= somefun() %>
###
Altough我建议使用@Semyon Perepelitsa答案,因为它生成咖啡脚本文件,因为咖啡编译器会看到它。
答案 0 :(得分:1)
暂时从文件扩展名中删除“coffee”:somefile.js.erb。您将在/assets/somefile.js中看到它的中间状态,因为它不会被CoffeeScript处理。
答案 1 :(得分:0)
我想知道你是否可以把<% binding.pry %>
放在线前,然后把它弄得一团糟,直到你做对了。从未在编译过程中尝试过,也不要使用coffeescript。从理论上讲,只要你将gem pry
放在你的Gemfile中并首先运行bundle
,它应该可以工作(或者值得一试)。