1

我在我的 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

在我的文章/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。如何解决这个问题。给出建议

4

1 回答 1

1

使用|管道告诉 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) %>");
}
于 2012-03-26T02:57:47.990 回答