3
與協會(如Post belongs_to user
)一個Rails應用程序,一個共同的例外是:在Ruby中,爲什麼堆棧跟蹤中沒有變量名?
NoMethodError: undefined method `user' for nil:NilClass
無處不在,這使得初學者認爲user
爲零。爲什麼我們不會有更直觀的錯誤,比如下面的錯誤?
NoMethodError: `@post' is a nil:NilClass and doesn't have the method `user'
編輯:爲什麼這是downvoted?這個問題是合法的。我想知道是否有技術原因阻止這一點。
他們一直都在倒退。沒關係。 – texasbruce 2013-02-20 19:48:11
我懷疑他們正在低估@CharlesOliverNutter在第一句話中所說的原因。這是一個非常明確的信息,「零沒有稱爲'用戶'的方法。」那加上行號告訴了我很多。如果我不能確定會導致什麼變量,那麼我將重構我的代碼,使其更加明顯,但通常它會是一個帶有「.user」的代碼。 – 2013-02-20 20:08:08
我經常導師同時開始Ruby和Rails的人。我的理解是,很容易被不知所措,並且在某些事情不起作用時感到沮喪,並且在做一些更改並重新加載頁面之前快速閱讀'user'和'nil'。 :-(我們已經學會了注意行號等等,這個討論可能有更好的地方,但我不確定在哪裏。 – 2013-02-20 20:13:42