Rails escape_javascript不会渲染东西

时间:2010-11-02 16:04:51

标签: javascript jquery ruby-on-rails ajax

这是我的代码

$(function(){
$('#new_post').bind('ajax:success', function() {
    $('.posts').append("<%=escape_javascript(render :partial=>'post', :loca\
ls=>{:post=>Post.new})%>");
    });
});

导致奇怪的输出,页面只是将<%=escape_javascript(render :partial=>'post', :locals=>{:post=>Post.new})%>附加到我的列表中。

有谁知道这会怎么样? 谢谢!

2 个答案:

答案 0 :(得分:2)

我最终解决了这个问题,谢谢!

实际上我首先使用了这种方法,但它没有用。

事实证明我使用了

format.js { render :nothing => true }  

在我的控制器中,这可能会阻止javascript呈现任何内容。

此外,而不是使用

<%= div_for post do %>

我用过

<tr><td> 

格式 对于我的单一帖子 我想这就是为什么我的javascript不起作用的部分原因

现在我的create.js.erb只呈现

$('#posts').append("<%= escape_javascript(render(@post)) %>");

它有效。

谢谢大家,我是这个社区的新手(也是rails / javascript),但我已经学到了很多东西。

答案 1 :(得分:1)

如果这是部分视图或视图,请确保使用扩展名.js.erb命名,否则可能无法进行正确的ERB插值。