2012-02-17 7 views
2

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コードを資産にコンパイルすることは可能ですか?どうやって?

答えて

0

js.erbアセットファイルで<%= ... -%>構文を使用した場合、同じ問題が発生しました。 <%= ... %>を使用して修正しました。

またループコール

<% [1,2].each do |element| %> 
    aaa 
<% end %> 
ため =をスキップしてみてください
関連する問題