这应该是一个相当简单的修复错误(我希望)。当我的应用中的joke
获得批准后,我希望user
获得5 manpoints
(不要问)。我目前在我的'jokes_controller`中有这个:
def approve
@joke = Joke.find(params[:id])
@joke.update_attributes(approved: true)
if @joke.user.manpoints = nil
@joke.user.manpoints = 5
else
@joke.user.manpoints += 5
end
@joke.save
redirect_to jokes_path
end
当我尝试批准一个笑话时,我收到了这个错误:
undefined method `+' for nil:NilClass
我认为+ =是“Ruby方式”来做到这一点?谁能让我直截了当?
答案 0 :(得分:0)
将=
条件中的if
更改为==
。我假设您需要将manpoints
与nil
进行比较,而不是将nil
分配给manpoints。
应该是这样的:
if @joke.user.manpoints == nil
...
您可以在此处省略==
运算符:
unless @joke.user.manpoints
...
PS。为什么除了manpoints
nil
之外你呢?