тонкий файл не выполняет JS внутри него - PullRequest
1 голос
/ 25 марта 2012

я использую gem 'jeditable-rails' в моем приложении rails 3.2 для редактирования на месте. В моем контроллере у меня есть

def update
@article = Article.find(params[:id])
@article.update_attributes(params[:article])
render :layout => false if request.xhr?
end

AND в моих статьях / update.js.slim

У меня есть

- unless @article.errors.empty?
  | $("#error_msg").html(@article.errors);
- else
  | $("#success_msg").html("updated successfully");

Но когда я делаю обновление, оно обновляется и переходит к файлу js и отображает его как есть.как $("#error_msg").html(@comment.errors); напечатано как таковое или $("#success_msg").html("updated successfully")

РЕДАКТИРОВАТЬ:

Я использую jeditable плагин для редактирования вместо только названия моей статьи.Он обновляет заголовок статьи и отображает файл js, так как это

ответ, который я получил здесь, это json.как решить это.Дайте предложения

1 Ответ

1 голос
/ 26 марта 2012

Использование конвейера | заставляет механизм рендеринга Slim выводить содержимое в виде текста, поэтому вы буквально видите, как он печатает код JavaScript в виде текста.

В этом случае я не думаю, что вы хотите или не должны использовать Slim здесь.Использование ERB было бы просто замечательно.Попробуйте заменить файл articles/update.js.slim на articles/update.js.erb вместо следующего кода:

var valid = <%= @article.errors.empty? %>;

if (valid) {
  $("#success_msg").html("updated successfully");
}
else {
  $("#error_msg").html("<%= escape_javascript(@article.errors) %>");
}
...