防止will_paginate的无效页码(0)?

时间:2019-07-12 17:32:29

标签: ruby-on-rails ruby ruby-on-rails-5 will-paginate

将您发送给参数newPet._type = "Something Else"; 的will_pagify宝石will_paginate将抛出错误。有比声明[ts] Type '"Something Else"' is not assignable to type '"dog" | "fish"'. [2322] (property) _type: "dog" | "fish" 更好的方法吗?希望这是为了支持零索引页面,我可以使用功能参数禁用它。

*可能还有其他我未测试过的无效输入。字符串为nil。

更新

尝试避免:

page=0

vs。

page = nil (or 1) if param[:page] =~ /^[0]{,}$/

1 个答案:

答案 0 :(得分:0)

您可以利用WillPaginate has already done来处理所有情况,如下所示:

def clean_page(page)
  begin 
    WillPaginate::PageNumber(page)
  rescue WillPaginate::InvalidPage
    1  
  end 
end 

它将处理所有相同的问题,因为您正在利用它们的验证过程,而任何未通过的操作默认为第1页。

Working Example