它看起來像我在我的應用程序中收到的錯誤是由@ad對象以某種方式變爲零的事實引起的。我現在唯一想到的就是逐步瞭解Rail控制檯中正在發生的事情。 這是從控制器代碼:我想在軌控制檯檢查@廣告= Ad.find(PARAMS [:編號])變量的值 - 無?
def edit
@ad=Ad.find(params[:id])
end
所以第一步實際工作。 所以我在控制檯
@ad=Ad.find(id=5)
輸入和接收輸出
" ←[1m←[36mAd Load (0.0ms)←[0m ←[1mSELECT "ads".* FROM "ads" WHERE "ads"."id" = ? LIMIT 1←[0m [["id", 5]]
=> #<Ad id: 5, name: "Door curtain", description: "Beaded door cu...", price: #<BigDecimal:40be0e8,'0.11E2',4(8)>, selle
r_id: 773, email: "[email protected]", img_url: "http://www.freewebsit...", created_at: nil, updated_at: nil>"
OK,這一步工作。 我想要做的下一步是看看如果@ad被打印在屏幕上會發生什麼 - 這樣我就能夠看到傳遞給視圖的確切內容。 我輸入「在這個印刷@ad是給定的輸出:
irb(main):025:0> print @ad
#<Ad:0x40be700>=> nil
irb(main):026:0> puts @ad
#<Ad:0x40be700>
=> nil
- 是否真的意味着由於某種原因@ad爲nill的觀點是通過呢?
- 我的邏輯有問題嗎? (newbe)
另外,你最後一行在控制檯讀取'nil'的原因不是因爲對象是零,而是因爲'puts'的返回值是'零'。 –