2023/02/28 独特な記法だった
code:models/article.rb
def published=(v)
return unless v == published?
self.published_at = v ? Time.zone.now : nil
end
def publish!
update! published: true
end
update! published: trueでpublished=(true)が呼ばれている
articleをunpublish!した時に、TOP記事から削除する場合は
after_update!などでTOP記事テーブルから該当articleを削除するということをおこなうと、削除漏れがなくなる。
unpublish!だけでやると他のメソッド内で削除を行う時に、削除漏れが出てくる。
削除されたら、これも削除するという時はafter_update!などを使う