2016-08-13 11 views
0

これは修正するのはかなり簡単なエラーです(希望します)。私のアプリのjokeが承認されたら、userに5 manpoints(尋ねないで)授与されることを望みます。私が行うには、 『Rubyの道』 = +だと思った整数に加算する変数:Railsコントローラ

undefined method `+' for nil:NilClass 

:私は冗談を承認しようとすると、私はこのエラーを取得してい

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 

を:私は現在、私の「jokes_controller`でこれを持っていますこの?誰も私をまっすぐに置くことができます

+0

'@joke.user.manpoints = nil'を' @joke.user.manpoints.nil? 'に変更し、' @joke.user.manpoints == nil'が正しい構文になるようにしてください – mrvncaragay

答えて

0

=ifに変更すると、==になります。 nilをmanpointに割り当てるのではなく、とnilを比較する必要があると仮定します。

unless @joke.user.manpoints 
    ... 

PS:あなたがここに==演算子を省略することができます

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

: それは次のようにする必要があります。 manpointsnilになること以外はどうしてですか?

+0

これらの変更はエラーですが、 'user'の' manpoints'は承認アクションの後でも 'nil'です。 – Liz

+0

'user'インスタンスを保存する必要があります。 '@ joke.user.save'で保存してください。 – user1201917

+0

パーフェクト!ありがとうございました! – Liz

関連する問題