防范 will_paginate 的无效页码 (0)?
Guard against invalid page number (0) for will_paginate?
will_pagify gem will_paginate 如果您向它发送参数 page=0
将抛出错误。有没有比声明 page = nil (or 1) if param[:page] =~ /^[0]{,}$/
更好的方法?希望这是为了支持零索引页面,我可以用函数参数禁用它。
*可能还有其他我没有测试过的无效输入。字符串为零。
更新:
试图避免:
begin
model = Model.where(...).paginate(page: params[:page])
<additional code>
rescue
model = Model.where(...).paginate(page: '1')
<redo additional code again or use function***>
对比
current_page = clean_page(params[:page])
model = Model.where(...).paginate(page: current_page)
您可以利用 WillPaginate
has already done 来处理所有情况,如下所示:
def clean_page(page)
begin
WillPaginate::PageNumber(page)
rescue WillPaginate::InvalidPage
1
end
end
这将处理所有相同的问题,因为您正在利用他们的验证过程,任何失败的内容都默认为第 1 页。
will_pagify gem will_paginate 如果您向它发送参数 page=0
将抛出错误。有没有比声明 page = nil (or 1) if param[:page] =~ /^[0]{,}$/
更好的方法?希望这是为了支持零索引页面,我可以用函数参数禁用它。
*可能还有其他我没有测试过的无效输入。字符串为零。
更新:
试图避免:
begin
model = Model.where(...).paginate(page: params[:page])
<additional code>
rescue
model = Model.where(...).paginate(page: '1')
<redo additional code again or use function***>
对比
current_page = clean_page(params[:page])
model = Model.where(...).paginate(page: current_page)
您可以利用 WillPaginate
has already done 来处理所有情况,如下所示:
def clean_page(page)
begin
WillPaginate::PageNumber(page)
rescue WillPaginate::InvalidPage
1
end
end
这将处理所有相同的问题,因为您正在利用他们的验证过程,任何失败的内容都默认为第 1 页。