0
条件before_saveコールバックのメソッド呼び出しを否定するためにどのように私は、このコールバックがあります。レール5は、私のテンプレートモデルでは
before_save :set_status, if: :is_template?
private
def is_template?
return self.template_type == 'template'
end
がどのように私はそれを変更することができますしているので、それだけの火災で、template_typeではない「テンプレート'?
私はこれらを試してみました:
1 before_save :set_status, if: !:is_template?
2 before_save :set_status, if: !(:is_template?)
彼ら原因 'メソッドbefore_save
が見つかりません' というエラーの両方。
before_save :set_status, if: Proc.new {|model| !model.is_template? }
しかし、それは、このような単純なケースのためにやり過ぎと思われる:
が this questionを読んでたので、私もこれを試してみました。実際にこれを動作させるには別の方法:is_not_template?
を書き込む必要がありますか?
は試してみてください 'before_save:set_status、しない限り:?is_template';) – DivXZero
@DivXZeroだから、明らかにあなたがそれを見たとき。私は約忘れている!どうもありがとうございます!答えとして投稿してください、私はそれをマークします。 – rmcsharry