3

一部のページにのみ必要なJavaScriptを含めるために、

 = javascript_tag do
   = render "inserts_js_enhanced_element.js.erb"

私のhamlファイルで。これで、テストで警告が表示されます。

DEPRECATION WARNING: Passing a template handler in the template name is 
deprecated. You  can simply remove the handler name or pass render
:handlers => [:erb] instead.`

ただし、行をに変更すると

   = render "inserts_js_enhanced_element.js", :handlers => [:erb]

とにかく新しい警告が表示されます

 DEPRECATION WARNING: Passing the format in the template name is 
 deprecated. Please pass render with :formats => [:js] instead.

これをに変更した場合

 = render "inserts_js_enhanced_element", :handlers => [:erb], :formats => [:js]

それは私にエラーを与えます

     ActionView::Template::Error:
   Missing partial application/inserts_js_enhanced_element with {:handlers=>[:haml, :builder, :erb, :coffee], :locale=>[:de], :formats=>[:html]}. 

現在、フォーマットはに変更されていないようで:js、ハンドラーも変更されていないようです:erb。JS-ERBを正しく入力するにはどうすればよいですか?

アップデート:

js.erbファイルの形式は

 <% session_val = determine_session_val_from_config %>
 jQuery(document).ready(function() {
   //JS Code
 }
4

2 に答える 2

10

いいね:)私はこのSOの記事で自分で答えを見つけたと思います

= render(:partial => 'inserts_js_enhanced_element', :handlers => [:erb], :formats => [:js])

動作し、非推奨の警告は表示されません

于 2013-01-10T14:42:00.253 に答える
3

これだけ使ってみましたか?

= render "inserts_js_enhanced_element"
于 2013-01-10T13:13:08.420 に答える