javascript - Ruby on Rails,ajax 分页错误,在更改站点之前有效

标签 javascript jquery ruby-on-rails ruby ajax

我在 Rails 应用程序中遇到了这个不寻常的问题。我有一个 View ,我正在使用 RESTful 路线。 在我看来,我有一个索引和一个显示操作。在我的索引中,我是否对从表中打印的某些行使用 will_paginate 。当我按分页上的“下一步”时,它会发出 ajax 请求并呈现接下来的 5 行。第一次加载网站时一切正常,当我单击“下一步”时,它会由 JS 处理到 Controller 。但是,当我单击从表格打印的其中一篇文章上的“显示”并定向到 show.html.erb 并按按钮返回索引时,我在分页上的 ajax 调用中遇到了不寻常的问题。例如,如果我单击下一步,它将由 HTML 处理。如果我再次更新索引,ajax 调用将再次工作。

index.html.erb

<% @posts.each do |post| %>
<%= post.name %>
<%= link_to 'show', post_path(post) %>
<% end %>
<div class="show_pagination"><%= render 'posts/pagination' %></div>

_pagination.html.erb

<div class="pagination">
<%= will_paginate @posts, :page_links => false %>
</div>

index.js.html

$('.show_pagination').html('<%= escape_javascript(render("posts/pagination")) %>');

show.html.erb

<%= @posts.name %>
<%= link_to 'All posts', posts_path %>

posts_controller.rb

def index
@posts = Post.paginate(page: params[:page],:per_page => 5).all.order('created_at DESC')
end

def show
@posts = Post.find(params[:id])
end

application.js

$(document).ready(function () {
    $("body").on("click", '.show_pagination .pagination a', function(e){
        e.preventDefault();
        $.getScript(this.href);
        return false;
    });
});

我的 javascript 控制台或 Rails 控制台中没有收到任何错误。 我正在使用 ROR 4,并且正在使用 Jquery 和 Jquery ui gem。

提前致谢。

最佳答案

我确实安装了 Jquery-turbolinks gem,现在一切正常。

所以,如果除了我之外的其他人也有同样的问题,这里有一个 jquery Turbolinks 的链接。 https://github.com/kossnocorp/jquery.turbolinks

关于javascript - Ruby on Rails,ajax 分页错误,在更改站点之前有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178640/

相关文章:

javascript - 为什么我的 datatables.js 上的搜索功能不起作用?

javascript - Ajax Html 编辑器不计算使用 ASP.NET C# 的母版页中的字符

javascript - JQuery droppable() 无法识别 "this"对象引用

ruby-on-rails - Time 和 DateTime 之间的 Rails 时区差异

javascript - 客户端上的 Socket.io 路径,如何将它匹配到我的 node.js 服务器目录树?

javascript - 傻瓜的 Facebook 回调

javascript - {{variable}} 未解释

javascript - 没有 Vue 加载器的 Vue 2 组件样式

javascript - 来自 Google Analytics api 的 JSON 响应

ruby-on-rails - 除 root 之外的所有端点都重定向到 HTTPS