Rails 3.2でアプリケーションを単一ページアプリケーションアーキテクチャに移行し、backbone.jsをgem backbone-on-railsで移行します。Rails Assetsでjavascriptテンプレートを作成するためにerbブロックをコンパイルする際にエラーが発生する
マイアプリケーションビューは、この単純な例のように、のform_for使用して、実際にいくつかのフォームを持っている:
<%= form_for :filter do |f| %>
<div>
<%= f.label :document, t('tags.label.entity_document') %>
<%= f.text_field :document %>
</div>
<div>
<%= f.label :name, t('tags.label.name') %>
<%= f.text_field :name %>
</div>
... and so on
<% end %>
私はRailsの3.1資産のパイプラインがJSTファイルをコンパイルする機能を持っており、いくつかのコンパイラを一緒にカスケード接続することが可能であることを見てきました私のケースでは、このERBフォームファイルを資産でコンパイルしたいと思っています。
は、だから私は名前アプリ/資産/テンプレート/ index.jst.ejs.erbと資産フォルダにフォームERBファイルを移動し、私は以下のコンパイルエラーメッセージを受信しています:
compile error
/Users/rmi/Workspace/cbs-backbone/app/assets/templates/entities/index.jst.ejs.erb:2: syntax error, unexpected ')'
...h', :method => 'get'} do |f|).to_s)
^
/Users/rmi/Workspace/cbs-backbone/app/assets/templates/entities/index.jst.ejs.erb:52: syntax error, unexpected kENSURE, expecting ')'
/Users/rmi/Workspace/cbs-backbone/app/assets/templates/entities/index.jst.ejs.erb:54: syntax error, unexpected kEND, expecting ')'
(in /Users/rmi/Workspace/cbs-backbone/app/assets/templates/entities/index.jst.ejs.erb)
を
<%= [1,2].each do |element| %>
aaa
<% end %>
が
compile error
/Users/rmi/Workspace/cbs-backbone/app/assets/templates/entities/sbrabous.jst.ejs.erb:1: syntax error, unexpected ')'
_erbout = ''; _erbout.concat(( [1,2].each do |element|).to_s)
^
を行います。この同じエラーは、このシンプルな、次のコードでも起こります
だから、すべてのルビブロックで起こっているようです。
この前の質問https://stackoverflow.com/a/9282744/1216027に示すように{{}}をEJSオープン/クローズタグとして使用するように私のレールアプリケーションを設定しましたので、<%はERB処理でなければなりません。ブロックが必要です。
これらのERBコードを資産にコンパイルすることは可能ですか?どうやって?