slim文件没有执行里面的js



我在rails 3.2应用程序中使用gem"jeditable rails"进行就地编辑在我的控制器中,我有

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。如何解决这个问题。GIve建议

使用|管道告诉Slim渲染引擎将内容输出为文本,因此您可以看到它将JavaScript代码打印为文本。

在这种情况下,我认为你不想也不需要在这里使用Slim。使用再培训局就可以了。尝试将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) %>");
}

最新更新