- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我环顾四周,找不到任何接近的答案。我认为这是一个非常独特的边缘案例,所以我并不感到惊讶。
我有一个索引页面,其中显示了所有线索,但我有 3 种不同的显示方式:未审核、已审核、全部。为此,我使用 current_page?帮助器,添加: ?unreviewed=true 到 url。
这本身没有问题,当我在 kaminari 中添加分页时,页面参数似乎把它搞砸了,让它成为 current_page?无法读取额外的参数。
我该如何解决这个问题,或者是否有更好的方法来实现这个目标?
这是使用 Rails 4 和 Kaminari 0.15.1
Controller :
def index
@leads = Lead.order(:id).page params[:page]
@reviewed_leads = Lead.where(reviewed: true).order(:id).page params[:page]
@unreviewed_leads = Lead.where(reviewed: nil).order(:id).page params[:page]
current_page_no = Lead.page
end
index.html.erb
<tr>
<td colspan="7" style="text-align: center;">
<div class="pagination pagination-table">
<% if current_page?(controller: 'leads', action: 'index', unreviewed: 'true') %>
<%= paginate @unreviewed_leads %>
<% elsif current_page?(controller: 'leads', action: 'index', reviewed: 'true') %>
<%= paginate @reviewed_leads %>
<% else %>
<%= paginate @leads %>
<% end %>
</div>
</td>
</tr>
当 URL 看起来像这样时,它起作用了:
/closingloop/leads?unreviewed=true
像这样,current_page 没有正确读取它,它总是显示@leads 实例变量
/closingloop/leads?page=2&unreviewed=true
任何帮助将不胜感激。我将继续尝试。将根据我的发现进行更新。
最佳答案
将您的 Controller 操作更改为
def index
@leads = Lead.where(reviewed: params[:reviewed]).order(:id).page(params[:page])
end
然后在您看来,您不必检查当前页面,只需确保您传递的是 params[:reviewed]
<%= paginate @leads, params: { reviewed: params[:reviewed] } %>
更新
正如评论中所指出的,这不适用于显示混合线索。这可以通过创建范围来实现
# lead model
def self.filter_by_reviewed_status(status)
case status
when nil then scoped
when 'true' then where(reviewed: true)
when 'false' then where(reviewed: false)
end
end
然后在您的 Controller 中,使用它来获取线索
@leads = Lead
.filter_by_reviewed_status(params[:reviewed])
.order(:id)
.page(params[:page])
确保在链接中将 params[:reviewed]
设置为 true、false 或 nil(根本不通过)以获得您需要的 leads
关于ruby-on-rails - Kaminari 和额外参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24984426/
我正在迭代大量模型对象,出于性能/内存原因需要分页。 我想做这样的事情: for i in 1..Person.num_pages Person.page(i).each do # wor
这是我的 Controller (索引已排序): def index if params[:limit] @bisacs = Bisac.order(:bisac_code).
我想使用 Kaminari 分页 gem 对我的对象进行分页。我的 Controller 中有这一行: @products = Product.order("id").find_all_by_id(p
我在如何让 Kaminari 工作方面遇到了一些问题。我在 GitHub 上做了安装过程。 gem "kaminari" 然后运行 bundle 我有这个索引片段 @users = User.orde
所以我在我的应用程序上设置了 Kaminiari 分页,这是一个论坛。当有人回复线程时,我想将他们定向到线程的最后一页。似乎根据我用于记录编号的内容对逻辑进行硬编码以获取最后一页似乎很容易,但是是否有
kaminari中的方法是什么?知道下一页是否存在?与 will_paginate很简单,您只需调用 next_page?模型上。不知道kaminari里面有没有 最佳答案 要检查 kaminari
Kaminari 可以在不使用 COUNT(*) 查询访问数据库的情况下工作吗? 我的应用程序的数据库很大,计数项目比获取项目本身花费的时间要长得多,从而导致性能问题。 也欢迎对具有大型数据集的其他分
我正在使用 Kaminari用于在我的 Rails 应用程序中进行分页。我需要为当前页面或每一页上的项目选择全部。当前页面是相当简单的 bundle ,我如何选择其他页面上的所有项目。 file_it
我正在尝试创建一个具有分页的通知中心(通过 Kaminari)就像 Facebook 一样。 我希望该中心显示任何页面的分页(该中心包含在头文件中)。 现在我已经在下面编写了代码,然后当我访问 hom
我正在尝试使用此示例来实现 kaminarirails 无限滚动。它在我的其他应用程序中运行良好,但在此应用程序中不起作用。 Kaminari example 我的公司财务总监 def index
我环顾四周,找不到任何接近的答案。我认为这是一个非常独特的边缘案例,所以我并不感到惊讶。 我有一个索引页面,其中显示了所有线索,但我有 3 种不同的显示方式:未审核、已审核、全部。为此,我使用 cur
听起来这应该是一个常见问题,但我找不到任何相关信息。 设置:我有一个分页的项目列表;每个项目都有一个 remote: true “删除”按钮,因此可以使用 remote ajax 请求删除任何项目。
这可能是个愚蠢的问题,但我似乎找不到答案。 我想为 kaminari 做贡献,所以我 fork 了 repo,bundle 了它,现在我想运行规范以确保一切都是绿色的。但我似乎无法让它发挥作用: bi
我正在运行一些 rspec 单元测试,涉及通过 kaminari 分页取回数据,但我们应用程序的默认页面大小是 20,而 2 可以很好地用于测试。 如何为测试的默认 kaminari 页面大小设置不同
如果 Kaminari 生成返回首页的链接,则它的 URL 生成会忽略页面参数。但是,如果省略 page 参数,则应用程序会选择随机页面。因此,Kaminari 的默认行为会阻止以可靠的方式分页回到第
11月份就有这样的问题,但是没有给出答案。 Kaminari generates string instead of html in production而且没有作者的反馈,缺乏声誉不会让我有机会在那
我正在使用 Kaminari::Cells gem,当我在单元格 View 中使用 paginate 方法时,没有任何显示。我查了一下,分页方法只是返回“\n”。 最佳答案 我不确定它为什么有效,但是
假设我有 30 页使用 Kaminari 进行分页: #800 books, 25 per page =paginate @books, :outer_window => 3, :window =>
我在自定义页面上使用 kaminari 分页,但它生成基于/assets 的 url: http://localhost:3000/assets?action=my&controller=blogs&
使用Rails&Kaminari gem,渲染 View 时出现以下错误: undefined method `total_pages' for #Array:0x007faa486583e0 Con
我是一名优秀的程序员,十分优秀!