0

Railsアセットパイプラインによって処理されるsomefile.js.coffee.erbファイルがあります。私のERBコードは、Coffeeで解析できない文字列を返し、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() %>
###

@Semyon Perepelitsaの回答を使用することをお勧めします。これは、コーヒーコンパイラで表示されるコーヒースクリプトファイルを生成するためです。

4

2 に答える 2

1

ファイル拡張子から「コーヒー」を一時的に削除するだけです:somefile.js.erb。CoffeeScriptで処理されないため、その中間状態は/assets/somefile.jsに表示されます。

于 2013-03-19T10:15:01.700 に答える
0

<% binding.pry %>線の直前に置いて、正しくなるまでいじってみてはいかがでしょうか。コンパイル中に試したことはなく、coffeescriptを使用しないでください。gem pry理論的には、Gemfileを挿入して最初に実行する限り、機能するはずです(または一撃の価値があります)bundle

于 2013-03-19T09:46:47.153 に答える