我正在通過gem backbone-on-rails使用Backbone.js將Rails 3.2中的應用程序遷移到單頁應用程序體系結構。在Rails資產中編譯erb塊以創建JavaScript模板時出錯
我的應用程序視圖具有實際使用的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表單文件。
所以我感動的形式ERB文件名爲應用程序/資產/模板/ index.jst.ejs.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)
^
所以它似乎正在與每個紅寶石塊發生。
我已經配置我的Rails應用程序使用{{}}作爲EJS打開/關閉標記,如在此之前的問題https://stackoverflow.com/a/9282744/1216027,所以<%應該是ERB處理,它是真正的工作對不紅寶石命令需要一個塊。
是否有可能在資產中編譯這些ERB代碼?怎麼樣?