0

js.erb ファイルに次のものがあります。

  //add an image from the gallery to the mail later
  $('.uploaded_image').click(function(){

      var src=$(this).attr('src').replace("thumb", "medium");
      var location = $('#user_image_location').attr('value');
      $('#mailing_body').contents().find("[data-edit-img="+''+location+''+"]").attr('src', src);
      $('#image_form').html('<%=render "user_images/form"%>');
      $('[data-dismiss]="cancel"').click();

  })

js ファイルで erb を使用して、ページのコンテンツを置き換えることができると考えました。次のエラーが表示されます。

undefined method `render' for #<#<Class:0x00000103dea400>:0x000001059f2198>

次の行を削除すると:

  $('#image_form').html('<%=render "user_images/form"%>');

それはすべて動作します。

Rails 3.2でjsファイルでerbが使えると思った

これが機能しないのはなぜですか?

前もって感謝します。

4

1 に答える 1

2

.js.erbファイル内でrender(すべてのヘルパー、リソースなどを含む)を使用できることは間違いありません(確かなことを確認しました)。

.js.erbファイルをファイルと同じように処理するには、.html.erbファイルをフォルダー内に配置する必要がありviewsます(app/views/<controller>またはなど) 。ファイルをフォルダーapp/views/sharedに配置することはできませんapp/assets/javascripts

于 2012-04-24T11:37:20.843 に答える