Module: HasLocalizationTable::ActiveRecord::Relation::InstanceMethods
- Defined in:
- lib/has_localization_table/active_record/relation.rb
Instance Method Summary collapse
-
#build_missing_localizations! ⇒ Object
Add localization objects for any available locale that doesn’t have one.
-
#reject_empty_localizations! ⇒ Object
Remove localization objects that are not filled in.
Instance Method Details
#build_missing_localizations! ⇒ Object
Add localization objects for any available locale that doesn’t have one
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/has_localization_table/active_record/relation.rb', line 79 def build_missing_localizations! return unless HasLocalizationTable.all_locales.any? locale_ids = HasLocalizationTable.all_locales.map(&:id) assoc = association(localization_association_name).reader HasLocalizationTable.all_locales.each do |locale| unless assoc.detect{ |record| record.send(HasLocalizationTable.locale_foreign_key) == locale.id } assoc.build(HasLocalizationTable.locale_foreign_key => locale.id) end end assoc.sort_by!{ |l| locale_ids.index(l.send(HasLocalizationTable.locale_foreign_key)) || 0 } end |
#reject_empty_localizations! ⇒ Object
Remove localization objects that are not filled in
95 96 97 |
# File 'lib/has_localization_table/active_record/relation.rb', line 95 def reject_empty_localizations! localization_association.reject! { |l| !l.persisted? && localized_attributes.all?{ |attr| l.send(attr).blank? } } end |