|
|
@ -32,8 +32,11 @@ class Poll < ApplicationRecord
|
|
|
|
scope :attached, -> { where.not(status_id: nil) }
|
|
|
|
scope :attached, -> { where.not(status_id: nil) }
|
|
|
|
scope :unattached, -> { where(status_id: nil) }
|
|
|
|
scope :unattached, -> { where(status_id: nil) }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
before_validation :prepare_options
|
|
|
|
before_validation :prepare_votes_count
|
|
|
|
before_validation :prepare_votes_count
|
|
|
|
|
|
|
|
|
|
|
|
after_initialize :prepare_cached_tallies
|
|
|
|
after_initialize :prepare_cached_tallies
|
|
|
|
|
|
|
|
|
|
|
|
after_commit :reset_parent_cache, on: :update
|
|
|
|
after_commit :reset_parent_cache, on: :update
|
|
|
|
|
|
|
|
|
|
|
|
def loaded_options
|
|
|
|
def loaded_options
|
|
|
@ -75,6 +78,10 @@ class Poll < ApplicationRecord
|
|
|
|
self.votes_count = cached_tallies.sum unless cached_tallies.empty?
|
|
|
|
self.votes_count = cached_tallies.sum unless cached_tallies.empty?
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def prepare_options
|
|
|
|
|
|
|
|
self.options = options.map(&:strip).reject(&:blank?)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def reset_parent_cache
|
|
|
|
def reset_parent_cache
|
|
|
|
return if status_id.nil?
|
|
|
|
return if status_id.nil?
|
|
|
|
Rails.cache.delete("statuses/#{status_id}")
|
|
|
|
Rails.cache.delete("statuses/#{status_id}")
|
|
|
|