我写了这个函数:
if params[:id] > @max
@page = @max
end
此处@max
是一个整数,params[:id]
的值不是nil
。
它说第一行存在问题,问题是:
未定义的方法`>'为零:NilClass
它不会将>
识别为运营商。为什么会这样?
答案 0 :(得分:3)
是的,params[:id]
是 nil
。这就是错误的含义。也许你想要params['id']
而不是?如果您有权访问正在运行的应用的控制台,请尝试p params, params[:id]
并再次提出请求,以查看有哪些值以及params[:id]
的值。
答案 1 :(得分:0)
它不会像NilClass
那样将其识别为运营商。 params[:id]
必须为零。检查Rails日志以获取进入请求的参数列表。我的猜测是,param的命名与你想象的不同。请尝试使用if params[:id].present? && params[:id] > @max
或params[:id].to_i > @max
来处理异常。