2011-12-20 5 views
0

を作成し、私はApprovalsController番号の更新でなぜエラーを投げて、このクラスのメソッドです:プライベートメソッドを呼び出すための試みは、 `」

NoMethodError`作成プライベートメソッドを呼び出すための 試みafter_saveコールバックに以下の方法を実行し、エラーを取得しています'

def create_next_approval 
     self.recommendation.create :email => self.next_approver_email #if next_approver_email? && recently_approved? 
end 

この方法は一般的に私に合っています。私は属性next_approver_emailを使って新しいオブジェクトafter_saveを作成しようとしています。

メソッドの2番目の部分をコメントアウトする必要がありました。これは、メソッドなしのエラーを返すためです:next_approver_email?

私は渡すことができると思った?方法にそれをチェックするだろうか?正確に伝えるのは難しいが、ここでは

+1

疑問符はメソッド名の一部であり、既存のメソッドの最後に付けることのできる任意のシンボルではありません。おそらく '空白? 'をチェックしたいでしょうか? –

答えて

1

モデルがhas_many :recommendationsと定義されている場合は、単語の複数形を使用する必要があります。例:

self.recommendations.create :email => self.next_approver_email 

電子メールをチェックすることについては、コメント欄に記載されているように、空白を使用することができますか?例:

self.recommendations.create :email => self.next_approver_email if next_approver_email.present? && recently_approved.present? 
+0

お返事ありがとうございました、この場合、has_many承認が推奨されます。だから私は勧告 –

+1

に関連する新しい承認を作成しています。また、.presentは私が探していたものでした。 –

関連する問題