【问题标题】:Rails: AJAX pagination with Kaminari gemRails:使用 Kaminari gem 进行 AJAX 分页
【发布时间】:2016-08-10 05:38:46
【问题描述】:

我有一个 Rails 应用程序,我正在尝试使用 Kaminari 添加分页。

我有一个这样的控制器动作。

def index
  ..
  @hotels = Kaminari.paginate_array(@hotels).page(params[:page]).per(5)
  ..
end

我的 index.html.haml

  ...
    .homestay-rightside.hotel-rightside
      = render :partial => 'hotel_rightside', :locals => {:hotels => @hotels}
  ...

我的酒店右侧部分

  - if hotels.present?
    #hotels_listing  
      = render :partial => 'hotel_details', :locals => {:hotels => @hotels}
    #hotels_pagination
      = paginate @hotels, :remote => true

我的 index.js.erb

   $('#hotels_listing').html('<%= escape_javascript(render :partial => "hotel_details", :locals => {:hotels => @hotels }) %>');
   $('#hotels_pagination').html("<%= escape_javascript(paginate(@hotels, :remote => true)) %>");

即使我添加了远程 true,现在它也会发出 HTML 请求。

我怎样才能把它变成一个 ajax 请求?

【问题讨论】:

  • hotel_rightside partial,你有hotel_details partial 对吗??但是为什么你在index.js.erb 中只刷新hotel_details ?? $('#hotels_listing').html('&lt;%= escape_javascript(render :partial =&gt; "hotel_details", :locals =&gt; {:hotels =&gt; @hotels }) %&gt;')
  • 我已经更新了 js.erb,因为我在 erb 中错误地使用了 haml 语法。即使在那之后它也没有用。

标签: jquery ruby-on-rails ajax pagination


【解决方案1】:

我猜您在项目中使用自定义 kaminari 视图,因此请查看您的视图并确定此 :remote =&gt; remote 是否存在,如果不存在,则将其添加到 link_to_unless 辅助选项中。

例如

= link_to_unless page.current?, page, url, {:rel => page.next? ? 'next' : page.prev? ? 'prev' : nil , :class => "page-link", :remote => remote}

【讨论】:

  • 是的,你是对的,阿米特。它仅在您进行了建议的更改后才起作用。非常感谢!
猜你喜欢
  • 2011-07-06
  • 2012-02-18
  • 2012-02-04
  • 2015-10-01
  • 2013-08-16
  • 2011-09-26
  • 1970-01-01
  • 2012-11-24
  • 2012-07-18
相关资源
最近更新 更多