Замена ERB на HAML не удалась в JS - PullRequest
5 голосов
/ 01 февраля 2011

Привет!

Я дурачился с HAML и преобразовал несколько частичных представлений из .erb в .haml. Но когда я попытался преобразовать .js.erb представление, оно просто не выполнится. Например. Кажется, мой .js.haml не выполняется, в то время как .js.erb работает так, как должно быть.

Вот мой .js.erb (который также работает):

<% if @quote.errors.any? && @quote.approved? %>
  $("#data_form").html("<%= escape_javascript(render(:partial => "form")) %>");
<% else %>
  $("#data_grid").prepend("<%= escape_javascript(render :partial => "quote", :locals => { :quote => @quote }) %>");
  $("#quote_author,#quote_body").each(function(i,e) {
    $(this).val("");
  });
<% end %>

А вот что я заменяю:

-if @quote.errors.any? && @quote.approved?
  $("#data_form").html("#{escape_javascript(render(:partial => "form"))}");
-else
  $("#data_grid").prepend("#{escape_javascript(render :partial => "quote", :locals => { :quote => @quote })}");
  $("#quote_author,#quote_body").each(function(i,e) {
    $(this).val("");
  });

В чем проблема и как ее решить?

1 Ответ

12 голосов
/ 01 февраля 2011

Попробуйте:

-if @quote.errors.any? && @quote.approved?
  :plain
    $("#data_form").html("#{escape_javascript(render(:partial => "form"))}");
-else
  :plain
    $("#data_grid").prepend("#{escape_javascript(render :partial => "quote", :locals => { :quote => @quote })}");
    $("#quote_author,#quote_body").each(function(i,e) {
      $(this).val("");
    });
...