gpt4 book ai didi

ruby-on-rails - 使用 Kaminari 时验证页码

转载 作者:行者123 更新时间:2023-12-01 16:38:01 25 4
gpt4 key购买 nike

我正在使用 Kaminari 来处理分页。我最近发现很多虚假请求都是请求无效的页码,例如/post/page/undefined。由于我使用 Solr,错误的页码被传递到其中并导致 500 错误。

我希望能够在页码传递到 Controller 之前对其进行验证。因此无效的页码反而会导致路由错误。

我问过Kaminari的创造者,he gave a temporary solution 。不过我想知道是否有更干净的方法来做到这一点。我也不想在每个可分页资源中包含此逻辑,因为这根本不是 DRY。

我的路线示例:

resources :transactions do
get 'page/:page', :action => :index, :on => :collection
end

最佳答案

我认为一个好的解决方案是简单地删除或更正任何无效或无意义的页面参数,然后重定向到更正后的 URL,如下所示:

# This goes in your relevant controller(s)
before_filter :correct_page_parameters!

# This goes in your application controller
def correct_page_parameters!
supplied_parameters = params[:page]
if supplied_parameters
proper_parameters = supplied_parameters.to_i

if proper_parameters < 2
params.delete(:page)
redirect_to params
elsif supplied_parameters != proper_parameters.to_s
redirect_to params.merge(:only_path => true, :page => proper_parameters)
end
end
end

希望这有帮助,祝你好运!

关于ruby-on-rails - 使用 Kaminari 时验证页码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13043825/

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