mirror of
https://github.com/discourse/discourse.git
synced 2025-04-29 22:44:37 +08:00
DEV: Fix poll plugin causing error when server reloads in dev env.
This commit is contained in:
parent
d8d54a92f1
commit
6359a5f8a9
@ -451,28 +451,30 @@ after_initialize do
|
|||||||
mount ::DiscoursePoll::Engine, at: "/polls"
|
mount ::DiscoursePoll::Engine, at: "/polls"
|
||||||
end
|
end
|
||||||
|
|
||||||
Post.class_eval do
|
reloadable_patch do
|
||||||
attr_accessor :extracted_polls
|
Post.class_eval do
|
||||||
|
attr_accessor :extracted_polls
|
||||||
|
|
||||||
has_many :polls, dependent: :destroy
|
has_many :polls, dependent: :destroy
|
||||||
|
|
||||||
after_save do
|
after_save do
|
||||||
polls = self.extracted_polls
|
polls = self.extracted_polls
|
||||||
next if polls.blank? || !polls.is_a?(Hash)
|
next if polls.blank? || !polls.is_a?(Hash)
|
||||||
post = self
|
post = self
|
||||||
|
|
||||||
Poll.transaction do
|
Poll.transaction do
|
||||||
polls.values.each do |poll|
|
polls.values.each do |poll|
|
||||||
DiscoursePoll::Poll.create!(post.id, poll)
|
DiscoursePoll::Poll.create!(post.id, poll)
|
||||||
|
end
|
||||||
|
post.custom_fields[DiscoursePoll::HAS_POLLS] = true
|
||||||
|
post.save_custom_fields(true)
|
||||||
end
|
end
|
||||||
post.custom_fields[DiscoursePoll::HAS_POLLS] = true
|
|
||||||
post.save_custom_fields(true)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
User.class_eval do
|
User.class_eval do
|
||||||
has_many :poll_votes, dependent: :delete_all
|
has_many :poll_votes, dependent: :delete_all
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
validate(:post, :validate_polls) do |force = nil|
|
validate(:post, :validate_polls) do |force = nil|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user