此迭代打印最高索引值。Rails迭代數學運算符導致參數數量錯誤
它的工作原理和8次打印8次。
- @videos.each_with_index do |video, index|
= index.size
當我加入數學運算符不工作,給我這個錯誤:錯誤的參數數目(1 0)
- @videos.each_with_index do |video, index|
= index.size - 1
此迭代打印最高索引值。Rails迭代數學運算符導致參數數量錯誤
它的工作原理和8次打印8次。
- @videos.each_with_index do |video, index|
= index.size
當我加入數學運算符不工作,給我這個錯誤:錯誤的參數數目(1 0)
- @videos.each_with_index do |video, index|
= index.size - 1
這似乎是:
index.size - 1
被解釋爲:
index.size(-1)
嘗試在括號迫使其添加到解釋正確的方法:
(index.size) - 1
或:
index.size() - 1
好吧,添加parens可能會修復haml上下文中的異常,但這個回答並沒有解決問題的根源。 'index.size'是Fixnum的字節大小,幾乎肯定不是OP所想的那樣。 – dbenhur 2013-02-25 03:02:30
是的,你是對的,我沒有看到。已經提出了你的答案。 – 2013-02-25 09:27:48
index
在你的例子是一個Fixnum,該元素的索引在枚舉中。 Fixnum#size
返回Fixnum的機器表示中的字節數。可能不是你要找的東西。它接受零個參數來解釋你得到的異常。
index.size
返回8
這一事實是因爲您運行在64位體系結構上,並且與@videos
的大小無關。
如果這個問題被標記下來,請至少給出一個理由。 – 2013-02-24 18:33:15
這是在HAML模板中? 當你做'=(index.size) - 1'時會發生什麼? – 2013-02-24 18:42:17
噢,謝謝你,這是一個HAML模板,你的答案奏效。請重新發布您的答案,並將其標記爲正確。 – 2013-02-24 18:46:06