在我的模型,我有:Rails模型如何基於最後一個值創建一個數組?
attr_accessor :ppris
def last(x)
@ppris = []
if @ppris == nil
@ppris << 1
else
@ppris << 2
end
end
def pakke
if self.pakkes.count > 0
self.pakkes.each{|pakke| beregn_pakke(pakke.price)}
end
end
在視圖中有我公司模型中的正常循環。
<%= company.ppris %>
鑑於ppris的值是所有行的[2]
。
我在我的表中有5個公司行。我預計每個公司的ppris價值爲: [1, 2, 2, 2, 2]
。
我也改變了模型方法:
def last(x)
@ppris = []
if @ppris == nil
@ppris << 1
else
@ppris << @ppris.last + 1
end
end
但後來我得到一個NoMethodError。我預計ppris會沒有錯誤:
[1, 2, 3, 4, 5]
我的模型方法有什麼問題?爲什麼我不能創建一個爲每個pakke獲取附加值的數組?
我已經改變了,但仍然company.ppris只[1]爲每個公司我希望它是[1,2,3,4,5] – 2011-12-28 02:09:51
@Railsbeginner因爲每次調用方法時都會創建一個新的'@ ppris'。 – 2011-12-28 02:11:05
那麼我怎麼不每次創建一個新的@ppris呢?我可以創建一個不希望每次都創建一個新的@ppris的方法嗎? – 2011-12-28 02:13:59