lib/mongoid/i18n.rb in mongoid_i18n-0.1.5 vs lib/mongoid/i18n.rb in mongoid_i18n-0.1.6
- old
+ new
@@ -2,24 +2,25 @@
require 'mongoid/i18n/localized_criteria'
module Mongoid
module I18n
extend ActiveSupport::Concern
-
+
module ClassMethods
def localized_field(name, options = {})
field name, options.merge(:type => LocalizedField)
end
-
+
def criteria
- I18n::LocalizedCriteria.new(self)
+ scope = scope_stack.last rescue nil
+ scope || I18n::LocalizedCriteria.new(self)
end
-
+
protected
def create_accessors(name, meth, options = {})
if options[:type] == LocalizedField
define_method(meth) { read_attribute(name)[::I18n.locale.to_s] rescue '' }
- define_method("#{meth}=") do |value|
+ define_method("#{meth}=") do |value|
write_attribute(name, (@attributes[name] || {}).merge(::I18n.locale.to_s => value))
end
define_method("#{meth}_translations") { read_attribute(name) }
define_method("#{meth}_translations=") { |value| write_attribute(name, value) }
else
\ No newline at end of file