我真的不知道如何為我正在嘗試做的事情起一個清晰的標題。
我正在使用 RoR,在控制器中我有這樣的宣告:
recipe.cover_image.attach(data: params[:recipe][:cover_image]) if params[:recipe][:cover_image] && params[:recipe][:cover_image].length > 255
所以我嘗試使用安全導航運算子讓它更緊湊、更易于閱讀,如下所示:
recipe.cover_image.attach(data: params[:recipe][:cover_image]) if params[:recipe][:cover_image]&.length > 255
但它不起作用。我懂了:
undefined method `\u003e' for nil:NilClass
問題是什么時候是 nil,它會做類似的事情: nil > 255 ?
有沒有辦法做到這一點?安全導航運營商之后的另一個動作?
uj5u.com熱心網友回復:
簡而言之,您可以添加.to_i到末尾.length以確保您正在比較類似的型別。例如
recipe.cover_image.attach(data: params[:recipe][:cover_image]) if params[:recipe][:cover_image]&.length.to_i > 255
您收到該錯誤的原因是NilClass沒有名為>. 但是,NilClass確實有一個.to_i方法,它總是回傳0. 因為>is a method onInteger并且0is an Integer,所以比較就可以了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/495298.html
