2017-05-20 10 views
0

`に私は私のRailsアプリケーションに2つのモデルがあります:私は、ユーザーのレストランを取得しようと、ユーザーが任意のレストランを持っていない場合は、私が取得しています未定義方法:NilClass current_user`

class User < ActiveRecord::Base 
    has_many :restaurants 
end 

class Restaurant < ActiveRecord::Base 
    belongs_to :user 
end 

エラー以下:

Undefined method `restaurants' for nil:NilClass

私は方法は、以下のコードではnilであるが、それは動作しませんチェックしています:

if !current_user.restaurants.nil? 
    @restaurants = current_user.restaurants.paginate(page: params[:page], per_page: 2) 
end 

ユーザーのレストランがnilかどうかを確認するにはどうすればよいですか?

+0

正確なエラーメッセージは何ですか?欠落しているメソッドは本当に 'xx'という名前ですか?あなたの例では 'xx'という名前のメソッドの呼び出しがないので尋ねるだけです。 – spickermann

+0

多分、 'current_user'が' nil'で、 'restaurants'を呼び出すときにエラーが出るということです。 – Gerry

+0

私は次のエラーが出ています。私は質問を編集しました:未定義のメソッド 'restaurants for nil:NilClass – onder

答えて

3

問題がcurrent_user次のとおりです。

"undefined method `restaurants' for nil:NilClass"

current_usernilあるので、restaurantsには対応できません。最初にcurrent_userを設定する必要があります。

+0

はい、あなたは正しいです。私はRoRで新しく、私にとっては奇妙なエラーコードです。私はcurrent_userが最初のエラーとしてnillであるのを待っています。 – onder

関連する問題