2012-03-25 44 views
1

我使用的宝石在我的轨道“jeditable-轨”的就地编辑工作 3.2应用程序在我的控制,我有苗条文件不执行JS里面

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

,并在我的文章/更新。 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。如何解决这个问题。 GI建议

+0

我真的不明白你的问题,但我会尝试猜测,建议您调试JavaScript作为[本文]在(HTTP ://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/)。 – 2012-03-25 07:12:37

+0

请更明确地描述你的问题,因为我没有明白你的观点。 – 2012-03-25 07:29:45

回答

1

使用|管道告诉Slim渲染引擎将内容输出为文本,因此为什么您从字面上看它将您的JavaScript代码打印为文本。

在这种情况下,我不认为你想或需要在这里使用Slim。使用ERB将会很好。试着用articles/update.js.erb用,而不是下面的代码替换articles/update.js.slim文件:

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

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

我正在使用{:locale => [:en],::formats => [:json],:handlers => [:erb,:builder,:slim,:coffee]获取丢失的模板文章/更新,应用程序/ }。错误我添加了文件update.js.erb在我的意见/文章/ – useranon 2012-03-27 09:56:29

+0

嗯,你的初始文件被明确命名为'article.js.slim'正确吗?我不确定一开始如何为json请求渲染该文件。因为请求的格式是:json格式,所以我会想象它期待'articles/update.json'模板。 – 2012-03-27 14:27:19