0

上に存在するかどうかをチェックします。レール:協会は、私はこのコードを実行する懸念でモデル

self.user&.favorite(self, scope: [:watching]) if self.respond_to? user 
self.team&.user.favorite(self, scope: [:watching]) if self.respond_to? team 

を私はUser & Teamでこの懸念が含まれています。

NameError: undefined local variable or method `user' for #<User:0xb0e9020>

同じTeamを作成するために行く: 毎回私は、私は次のエラーを取得する、User作成します。

どうしてですか?明らかにUserには、インスタンスに対してユーザーに応答するメソッド(または同等のもの)がありません。しかし、それで私はif self.respond_to? userをこの声明に追加したのです。

答えて

1

あなたの問題は、respond_to?userまたはteamメソッドが定義されていない場合、エラーが表示されます理由です引数

self.user&.favorite(self, scope: [:watching]) if self.respond_to? :user 
self.team&.user.favorite(self, scope: [:watching]) if self.respond_to? :team 

としてシンボルを受信することです。