mirror of
https://github.com/discourse/discourse.git
synced 2025-02-21 03:57:10 +08:00

Some plugins hook into Post after save to set custom fields and save again. For example: https://github.com/discourse/discourse-category-experts/blob/main/lib/category_experts/post_handler.rb#L27 Problem is that in case like that `raw_changed?` is false but all callback are triggered. `extracted_polls` is class atribute therefore that should be reset with each attempt. That was causing an error: ``` #<ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_polls_on_post_id_and_name" DETAIL: Key (post_id, name)=(8967, poll) already exists. ```