JunichiIto/passenger_overflow2 — comment on commit dd5f2681d7be3b484d4b98b59a2264cf9eefb97e
File: app/models/question.rb line 35
By JunichiIto:

コメントありがとうございます。おっしゃる通り、技巧的ですよね。。。

ここでの目的はupdateかつ、acceptのときだけ、「変更前にacceptされていたらNG」を発動させることです。
今のところQuestionをupdateするのはacceptだけです。

しかし、将来accept以外の目的でQuestionをupdateする場面があると、その場合は「変更前にacceptされていてもOK」となります。
よって、「validate xxx, on: :update」だけでは不都合が生じるため、なんとか「acceptの場合のみ検証実行」とさせようとしています。
まあ、YAGNIの精神からすると、「今必要でないコードは書くな」とも言えますが。。。

ネット等で似たようなケースがないか探しているのですが、なかなか見つからず、ちょっと困ってます。