簡體   English   中英

如何在標題中使用Kaminari分頁

[英]how to use Kaminari pagination in header

我正在嘗試創建一個像facebook這樣的分頁(通過Kaminari)的通知中心。

我希望這個中心顯示來自任何頁面的分頁(該中心包含在頭文件中)。

現在我已經編寫了下面的代碼,然后在我訪問home.html時它顯示得恰當但是它的分頁在其他頁面中不起作用(例如views / test / test.html.erb)。 可能,ajax似乎無法讀取js文件,因此如果我將test.js.erb文件放在views / test中,它將起作用。

從操作和維護的角度來看,這是不可取的方式。

如何只使用一個js.erb文件來讀取分頁? 謝謝你的幫助

源代碼如下。

模型

應用程序/模型/ item.rb的

class Item < ActiveRecord::Base
  paginates_per 50
end  

調節器


應用程序/控制器/ items_controller.rb

before_action :pagination


def pagination
  @items = Item.page params[:page]
end

視圖


應用程序/視圖/靜態/ home.html.erb

<%= render 'static/header' %>   <!-- reading partial header-->

應用程序/視圖/靜態/ _header.html.erb

<div><%= render 'application/items', items:@items %></div>      

應用程序/視圖/靜態/ home.js.erb

    $('#items').append("<%= escape_javascript(render '_items', object: @items) %>");
    $("#more_link").replaceWith("<%= escape_javascript(link_to_next_page(@items, 'more', remote: true, id: 'more_link')) %>");

應用程序/視圖/應用/ _items.html.erb

<div id="items">
  <%= render 'items' %>
</div>
<%= link_to_next_page @items, 'more', remote: true, id: 'more_link' %>

應用程序/視圖/應用/ __ items.html.erb

<% @items.each do |item| %>
  <div><%= item.name %></div>
<% end %>

我建議創建一個單獨的控制器動作來處理ajax請求:

class ItemsController
  def paginate
  end
end

然后在views/items/paginate.js.erb下移動js.erb代碼。

Kaminari的link_to_next_page幫助器使用link_to ,因此應該可以添加controlleraction參數鏈接:

<%= 
  link_to_next_page @items, 'more',
    controller: 'items',
    action: 'paginate',
    remote: true,
    id: 'more_link'
%>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM