Ruby on Rails3:将rails代码执行到js.erb视图中,不起作用

时间:2013-01-19 12:49:19

标签: javascript ruby-on-rails-3 jquery

我想动态地做kaminari paginator

此代码,处理点击事件到Kaminari链接

Kaminari.js

$(document).ready(function() {
  $(".paginator a").on("click", function() {
    $.getScript(this.href);
    return false;
  });
});

users_controller:

def index
  @users = User.all(:order => "name")
  @users = Kaminari.paginate_array(@users).page(params[:page]).per(10)
end

index.html.erb

<h1>Users</h1>
<div id="users-page">
  <%= render 'users'  %>
</div>

<%= paginate @users %>

然后我为用户动态分页写了一个js.erb视图:

应用程序/视图/用户/ index.js.erb的

如果我只提供像

这样的javascript代码
alert("paging");

当我点击分页链接时,完全提醒消息。

但如果我把&lt;%= ...%&gt;代码里面,这个javascript响应不会执行。

alert("paging");
$("#users-page").html(<%= render 'users' %>)

显示消息。

这可能是问题?

1 个答案:

答案 0 :(得分:0)

当存在javascript错误时会发生这种情况。在这种情况下,html()函数中缺少引号。

$("#users-page").html("<%= escape_javascript(render ('users')) %>")