在我的模特中,我有:
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。我希望没有错误可能是:
[1, 2, 3, 4, 5]
我的模型方法有什么问题?为什么我不能创建一个为每个pakke添加值的数组?
答案 0 :(得分:1)
@ppris = []
if @ppris == nil
@ppris
永远不会是nil
。它将是empty?
,但不是nil
。
发表评论
每次调用方法时都会创建一个新数组。如果您想要一个与实例关联的单个数组,请在after_initialize
callback。
答案 1 :(得分:0)
你可能想要这个:
def last(x)
@ppris = []
if @ppris.empty?
@ppris << 1
else
@ppris << @ppris.last + 1
end
end