我有一個比特的代碼紅寶石:NoMethodError在Ruby
def createCal(cal)
mod = @on + @off #line creating error.
@daycount = 0
cal
end
這會產生以下錯誤:NoMethodError在用於零/日曆未定義的方法'+」:NilClass文件:main.rb的位置:createCal行: 83
我在Sinatra中使用了這個功能,所以我可以將@on和@off打印到網頁上,我可以確認它們實際上正在裝入值。我也在我的haml模板中做了一個'@ooo = @on + @off',並且產生了7,這是可以預期的,因爲它是4並且不是3。
UPDATE:
這裏是我如何處理@on和@off
post '/calendar' do
@on = params["on"]
@off = params["off"]
@date = params["date"]
a = Doer.new
@var = a.makeDate(@date)
@on = @on.to_i
@off = @off.to_i
@ooo = @on + @off
@cal = a.makeCal(@var)
haml :feeling
end
這讓我想起[我提出的問題前一段時間]的(http://stackoverflow.com/questions/6970645/object-with-bigdecimals-returns-empty-strings-on-到-S)。我想知道爲什麼我無法在Rails中獲得我的屬性。現在我對Sinatra瞭解不多,但是'on'和'off'應該使用'on'和'off'方法來調用,而不是'@ on'和'@ off'?因爲它看起來像你的變量/屬性不被正確的說,當他們說,他們返回'無'... –
Upvoted反對投票,我不認爲是合理的,因爲這是一個完全有效的問題。 – Gazler
我不認爲他們應該是方法。它們只是我從表單拉入的變量。 –