RoR为Kaminari添加分页

时间:2016-01-19 19:44:26

标签: ruby-on-rails kaminari

我想为我的rails项目添加一些分页。 我已经添加了Kaminari,我设法每页只显示10条记录。但我已经错过了下一个/上一个箭头和页面指示器。

我正在使用Kaminari.paginate_array(@array).page(params[:page]).per(10)

这是我到目前为止唯一添加的内容。

我不知道这是否重要,但在我看来,我有@array.to_json

我应该添加什么才能显示箭头?

查看代码:

<% content_for :create_button do %>
  <%= create_button(new_battery_reset_path) %>
<% end %>
<div class="tab-content">
  <%= paginate @battery_resets %>
  <div class="tab-pane active" id="battery-resets" role="tabpanel"
    data-battery-resets='<%= @battery_resets.to_json %>'>
  </div>
  <div class="tab-pane" id="profile" role="tabpanel">...</div>
  <div class="tab-pane" id="messages" role="tabpanel">...</div>
</div>

控制器代码:

def index
    @battery_resets = Kaminari.paginate_array(BatteryResetDecorator.build_collection(
      ::Filters::BatteryReset.new(
          current_account.battery_resets.includes({ device: :account },
            :device_inspection)
      ).apply(permited_params[:q])
    )).page(params[:page]).per(10)

    respond_with(@battery_resets)
  end

enter image description here

2 个答案:

答案 0 :(得分:1)

您可能希望将select DISTINCT group_concat( DISTINCT m.lot1 ORDER BY m.lot1 ASC SEPARATOR ',' ) from myTableXYZ m group by m.product having MAX( case when m.tag1 = 101 then 1 else 0 end ) = 1 AND MAX( case when m.tag1 = 102 then 1 else 0 end ) = 1 AND sum( case when m.tag1 in ( 101, 102 ) then 0 else 1 end ) = 0; 放在rails视图中。 在提出任何问题之前,请先尝试阅读gem的wiki。(kaminari wiki

答案 1 :(得分:0)

根据docs

  

只需调用paginate helper:

<%= paginate @battery_resets %>
     

这将呈现由a包围的几个?page=N分页链接   HTML5 <nav>代码。

这也是will_paginate(另一个宝石)的相同模式。

-

关于fa_icon错误,这是由font-awesome-rails gem引起的;这意味着帮助者不可用。

解决此问题的方法是确保您仅使用Kaminari的捆绑文件。如果您以任何方式更改了_next_page.html.erb,则错误很可能现在又回来了。

-

fa_icon错误的快速解决方法是将font-awesome-rails添加到Gemfile

#Gemfile
gem "font-awesome-rails"