铁轨上的红宝石操作员无法识别

时间:2010-12-31 14:49:42

标签: ruby-on-rails ruby

我写了这个函数:

  if params[:id] > @max
   @page = @max
    end

此处@max是一个整数,params[:id]的值不是nil

它说第一行存在问题,问题是:

  

未定义的方法`>'为零:NilClass

它不会将>识别为运营商。为什么会这样?

2 个答案:

答案 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] > @maxparams[:id].to_i > @max来处理异常。