Module: LocalizableModel::ScopeExtension
- Defined in:
- lib/localizable_model/scope_extension.rb
Overview
LocalizableModel::ScopeExtension
Injected into the Relation when Model.localized is called.
Instance Attribute Summary collapse
-
#locale ⇒ Object
Returns the value of attribute locale.
Instance Method Summary collapse
- #load ⇒ Object
- #localize(locale) ⇒ Object
-
#order_by_localization(*attributes) ⇒ Object
Orders results by localized attribute values.
Instance Attribute Details
#locale ⇒ Object
Returns the value of attribute locale.
9 10 11 |
# File 'lib/localizable_model/scope_extension.rb', line 9 def locale @locale end |
Instance Method Details
#load ⇒ Object
17 18 19 20 21 |
# File 'lib/localizable_model/scope_extension.rb', line 17 def load super localize_records self end |
#localize(locale) ⇒ Object
11 12 13 14 15 |
# File 'lib/localizable_model/scope_extension.rb', line 11 def localize(locale) @locale = locale localize_records if loaded? self end |
#order_by_localization(*attributes) ⇒ Object
Orders results by localized attribute values.
Product.in_locale(:nb).order_by_localization(:name)
Product.in_locale(:en).order_by_localization(:name, :description)
28 29 30 31 32 33 |
# File 'lib/localizable_model/scope_extension.rb', line 28 def order_by_localization(*attributes) attributes = attributes.flatten.map(&:to_s) require_localized_attributes!(attributes) order(*attributes.map { |attr| order_by_localization_clause(attr) }) end |