Paginate上的自定义链接

时间:2014-11-21 17:42:20

标签: ruby-on-rails ruby paginate

我已经实现了will_paginate,现在我想将默认页面从ruby变量更改为日期。我该怎么做呢?

更准确一点:我的目标是每个日期有1页,并且在此页面上拥有属于此日期的所有数据

来自视图的片段:

  def show
    @waves = @location.infos.paginate(page: params[:page], per_page: 7)
    gon.watch.infos = @location.infos
    respond_with(@location)

来自控制器的片段:

<table class= "table table-striped">
            <thead>
                <th><strong>Day</strong></th>
                <th><strong>Swell Size</strong></th>
                <th><strong>Swell Rating</strong></th>
                <th><strong>Wind Speed</strong></th>
                <th><strong>Temperature</strong></th>
            </thead>
            <tbody>
                <!-- <%= will_paginate @waves, previous_label: "Previous day", next_label: "Next day", renderer: BootstrapPagination::Rails %> -->              
                <%= will_paginate(@waves, :renderer => PaginationListLinkRenderer) %>
                <% @waves.each do |wave| %>
                <tr>
                    <td><%= Time.at(wave.day.to_i).to_s.chomp("-0800")%></td>
                    <td><%= wave.size_min%>-<%= wave.size_max%><small>ft</small></td>
                    <td><% swell = wave.swell_rating %>
<td><%= wave.wind_speed%><small>mph</small></td>
                    <td><%= wave.temperature%><small>°F</small>   </td>

1 个答案:

答案 0 :(得分:0)

在这种情况下,您并没有真正对infos进行分页。您正在为这些记录分页created_on属性。

所以:

  • 确保您对这些记录created_on
  • 抓取按created_on分组的记录。原始sql或作用域将完成一项工作。 (范围不会让我们返回正确的对象)
  • 如果你有一组created_on个日期,你需要创建某种分页控件来显示它们。我想你可以使用will_paginate作为数组。
  • 在所选日期加载您的信息范围:@location.infos.for_date(params[:date])

基本上,你想做的事情需要一些肘部油脂。