我在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) %>");
}