从Rails控制器添加到整数变量

时间:2016-08-13 23:54:07

标签: ruby-on-rails

这应该是一个相当简单的修复错误(我希望)。当我的应用中的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方式”来做到这一点?谁能让我直截了当?

1 个答案:

答案 0 :(得分:0)

=条件中的if更改为==。我假设您需要将manpointsnil进行比较,而不是将nil分配给manpoints。 应该是这样的:

if @joke.user.manpoints == nil
  ...

您可以在此处省略==运算符:

unless @joke.user.manpoints
  ...

PS。为什么除了manpoints nil之外你呢?