Module: HasLocalizationTable::ActiveRecord::Relation
- Defined in:
- lib/has_localization_table/active_record/relation.rb
Defined Under Namespace
Modules: InstanceMethods
Constant Summary collapse
- RESERVED_KEYS =
[:association_name, :required, :optional, :dependent, :has_one, :include, :build_missing]
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.extended(klass) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/has_localization_table/active_record/relation.rb', line 6 def self.extended(klass) klass.send(:include, InstanceMethods) klass.send(:create_localization_associations!) # Alias the scoping method to use the actual association name alias_method :"with_#{klass.localization_association_name}", :with_localizations end |
Instance Method Details
#with_localizations(locale = HasLocalizationTable.current_locale.id) ⇒ Object
14 15 16 17 18 19 20 21 22 |
# File 'lib/has_localization_table/active_record/relation.rb', line 14 def with_localizations(locale = HasLocalizationTable.current_locale.id) lcat = localization_class.arel_table scoped.joins( arel_table.join(lcat, Arel::Nodes::OuterJoin). on(lcat[:"#{self.name.underscore}_id"].eq(arel_table[self.primary_key]).and(lcat[HasLocalizationTable.locale_foreign_key].eq(locale))). join_sql ) end |