2010-12-31 8 views
0

を認識しません演算子は、私は、この関数を書いた

これは、最初の行に問題があると言い、そして問題がある:

nilのための未定義のメソッド `>」:NilClass

それはオペレーターとして>を認識しません。それはなぜそうですか?

+0

params [:id]の値がnilではありませんか?そのエラーはそれを意味します。 –

答えて

0

NilClassのように、それをオペレータとして認識しません。 params[:id]はnilでなければなりません。リクエストに含まれるパラメータのリストをRailsログで確認してください。私の推測では、paramの名前はあなたの考えとは違っています。この例外を回避するには、if params[:id].present? && params[:id] > @maxまたはparams[:id].to_i > @maxを試してください。

+2

'params [:id] .to_i'は' nil.to_i'が0を返すので問題を隠すだけです。 '0'があるオブジェクトの有効なIDであれば非常に危険です。 – Phrogz

3

はい、params[:id]nilです。それがエラーの意味です。おそらくparams['id']を代わりにしたかったでしょうか?実行中のアプリケーションのコンソールにアクセスできる場合は、p params, params[:id]を試して、再度値を確認して、値params[:id]を確認してください。

関連する問題