Module: HasLocalizationTable::ActiveRecord::Relation::InstanceMethods

Defined in:
lib/has_localization_table/active_record/relation.rb

Instance Method Summary collapse

Instance Method Details

#build_missing_localizations!Object

Add localization objects for any available locale that doesn’t have one



61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/has_localization_table/active_record/relation.rb', line 61

def build_missing_localizations!
  return unless HasLocalizationTable.all_locales.any?

  locale_ids = HasLocalizationTable.all_locales.map(&:id)
  HasLocalizationTable.all_locales.each do |locale|
    unless localization_association.detect{ |str| str.send(HasLocalizationTable.locale_foreign_key) == locale.id }
      localization_association.build(HasLocalizationTable.locale_foreign_key => locale.id)
    end
    
    localization_association.sort_by!{ |l| locale_ids.index(l.send(HasLocalizationTable.locale_foreign_key)) || 0 }
  end
end

#reject_empty_localizations!Object

Remove localization objects that are not filled in



75
76
77
# File 'lib/has_localization_table/active_record/relation.rb', line 75

def reject_empty_localizations!
  localization_association.reject! { |l| !l.persisted? and localized_attributes.all?{ |attr| l.send(attr).blank? } }
end