gpt4 book ai didi

ruby - 如何强制 Kaminari 始终包含页面参数?

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:15 26 4
gpt4 key购买 nike

如果 Kaminari 生成返回首页的链接,则它的 URL 生成会忽略页面参数。但是,如果省略 page 参数,则应用程序会选择随机页面。因此,Kaminari 的默认行为会阻止以可靠的方式分页回到第一页。

我已经解决了这个问题,稍后会在下面发布我的解决方案,但我想为后代发布这个问题,而且我也是 Rails 的新手,因此我不确定我的解决方案是最好的或最优雅的,我对改进和改进很感兴趣,如果只是为了我自己的自私教化!

最佳答案

Kaminari 中实现我们想要改变的行为的代码行在 lib/kaminari/helpers/tags.rb 中。 ,在方法 Kaminari::Helpers::Tag::page_url_for 中。

  def page_url_for(page)
@template.url_for @template.params.merge(@param_name => (page <= 1 ? nil : page))
end

为了覆盖此行为,我创建了一个文件 lib/kaminari/helpers/tag.rb,其中包含以下内容:

module Kaminari
module Helpers
class Tag
def page_url_for(page)
@template.url_for @template.params.merge(@param_name => (page < 1 ? nil : page))
end
end
end
end

然后我通过将以下行添加到 config/initializers/extensions.rb 来修补文件:

require "lib/kaminari/helpers/tag.rb"

对于 Ruby/Rails 术语的任何尴尬,我深表歉意,我对 Ruby 还是个新手。欢迎评论和批评。

关于ruby - 如何强制 Kaminari 始终包含页面参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5488064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com