0

我有一些由 Rails 资产管道处理的文件.js.coffee.erb文件。我的 ERB 代码返回了一些无法被 Coffee 解析的字符串,导致 SyntaxError 异常。我想查看生成的somefile.js.coffee文件,或者一般来说资产管道处理的任何中间文件。

我试图检查 Sprockets 但没有运气:

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() %>
###

尽管如此,我还是建议使用@Semyon Perepelitsa 答案,因为它会生成咖啡编译器看到的咖啡脚本文件。

4

2 回答 2

1

只需暂时从文件扩展名中删除“咖啡”:somefile.js.erb。您将在 /assets/somefile.js 中看到它的中间状态,因为它不会被 CoffeeScript 处理。

于 2013-03-19T10:15:01.700 回答
0

我想知道你是否可以把它放在<% binding.pry %>这条线之前,然后乱来,直到你把它弄对为止。从未在编译期间尝试过,也不要使用咖啡脚本。从理论上讲,只要您放入gem pryGemfile 并bundle首先运行,它就应该可以工作(或值得一试)。

于 2013-03-19T09:46:47.153 回答