Replace nil objects by nil to prevent index issue with elasticsearch.
This commit is contained in:
parent
dab9fe995a
commit
756ae55c54
2 changed files with 12 additions and 2 deletions
|
@ -1,4 +1,4 @@
|
||||||
class FixedTwitterTicketArticlePreferences2 < ActiveRecord::Migration
|
class FixedTwitterTicketArticlePreferences3 < ActiveRecord::Migration
|
||||||
def up
|
def up
|
||||||
|
|
||||||
# return if it's a new setup
|
# return if it's a new setup
|
||||||
|
@ -6,12 +6,18 @@ class FixedTwitterTicketArticlePreferences2 < ActiveRecord::Migration
|
||||||
|
|
||||||
# find article preferences with Twitter::NullObject and replace it with nill to prevent elasticsearch index issue
|
# find article preferences with Twitter::NullObject and replace it with nill to prevent elasticsearch index issue
|
||||||
article_type = Ticket::Article::Type.find_by(name: 'twitter status')
|
article_type = Ticket::Article::Type.find_by(name: 'twitter status')
|
||||||
Ticket::Article.where(type_id: article_type.id).each { |article|
|
article_ids = Ticket::Article.where(type_id: article_type.id).pluck(:id)
|
||||||
|
article_ids.each { |article_id|
|
||||||
|
article = Ticket::Article.find(article_id)
|
||||||
next if !article.preferences
|
next if !article.preferences
|
||||||
changed = false
|
changed = false
|
||||||
article.preferences.each { |_key, value|
|
article.preferences.each { |_key, value|
|
||||||
next if value.class != ActiveSupport::HashWithIndifferentAccess
|
next if value.class != ActiveSupport::HashWithIndifferentAccess
|
||||||
value.each { |sub_key, sub_level|
|
value.each { |sub_key, sub_level|
|
||||||
|
if sub_level.class == NilClass
|
||||||
|
value[sub_key] = nil
|
||||||
|
next
|
||||||
|
end
|
||||||
if sub_level.class == Twitter::Place
|
if sub_level.class == Twitter::Place
|
||||||
value[sub_key] = sub_level.attrs
|
value[sub_key] = sub_level.attrs
|
||||||
changed = true
|
changed = true
|
|
@ -371,6 +371,10 @@ class TweetBase
|
||||||
preferences.each { |_key, value|
|
preferences.each { |_key, value|
|
||||||
next if value.class != ActiveSupport::HashWithIndifferentAccess && value.class != Hash
|
next if value.class != ActiveSupport::HashWithIndifferentAccess && value.class != Hash
|
||||||
value.each { |sub_key, sub_level|
|
value.each { |sub_key, sub_level|
|
||||||
|
if sub_level.class == NilClass
|
||||||
|
value[sub_key] = nil
|
||||||
|
next
|
||||||
|
end
|
||||||
if sub_level.class == Twitter::Place
|
if sub_level.class == Twitter::Place
|
||||||
value[sub_key] = sub_level.attrs
|
value[sub_key] = sub_level.attrs
|
||||||
next
|
next
|
||||||
|
|
Loading…
Reference in a new issue