在我的控制器中,我有这个:
user.save
if user.leveled_up==true
flash[:notice]="HOOOORAY!!!"
end
在我的模型中我有:
before_save :check_xp
# ....
def leveled_up=(leveled_up)
@leveled_up=leveled_up
if @leveled_up==true
self.statpoints+=5
hp=max_hp
end
end
def leveled_up
@leveled_up
end
private
def check_xp
leveled_up=false
case self.xp
when 0..999
self.level=1
when 1000..2999
leveled_up=true if self.level==1
self.level=2
when 3000..4999
leveled_up=true if self.level==2
self.level=3
when 5000..9999
leveled_up=true if self.level==3
self.level=4
# ...
end
end
但这不起作用。即使用户升级了函数,leveled_up也会返回false ...
我一定是做错了......
谢谢!
答案 0 :(得分:4)
这里leveled_up = false不是方法调用。您实际上创建了一个名为leveled_up的局部变量,它与该方法无关。 要调用该方法,请使用
self.leveled_up