メンション処理が楽になるgemのmentionableでメンションを送るタイミング(hook)を変更できるようにしました。
Discovery mentions from ActiveRecord column. - komagata/mentionable
class Comment
mentionable_as :body, on_mention: :after_commit_mention, hook_name: :after_commit
def after_commit_mention(new_mentions)
p new_mentions # Send notification if you want.
end
end
$ rails runner "Comment.create(body: '@nobunaga @hideyosi Hi guys.')"
["@nobunaga", "@hideyosi"]
hook_name
を指定できるようにしました。ActiveRecordのcallbackのタイミングのうち、デフォルトはafter_save
ですが、after_commit
とかに変更できます。
commitが確定した後じゃないと困る場合があるからです。