diff --git a/lib/globalize/model/active_record/adapter.rb b/lib/globalize/model/active_record/adapter.rb index 5e01fbbd4..d52e94007 100644 --- a/lib/globalize/model/active_record/adapter.rb +++ b/lib/globalize/model/active_record/adapter.rb @@ -31,6 +31,7 @@ def fetch(locale, attr_name) def stash(locale, attr_name, value) @stash.write locale, attr_name, value + @cache.write locale, attr_name, value end def update_translations! diff --git a/test/model/active_record/translated_test.rb b/test/model/active_record/translated_test.rb index 26a28835c..a2d33c2ed 100644 --- a/test/model/active_record/translated_test.rb +++ b/test/model/active_record/translated_test.rb @@ -15,6 +15,25 @@ def setup reset_db! end + test "modifiying translated fields" do + post = Post.create :subject => 'foo' + assert_equal 'foo', post.subject + post.subject = 'bar' + assert_equal 'bar', post.subject + end + + test "modifiying translated fields while switching locales" do + post = Post.create :subject => 'foo' + assert_equal 'foo', post.subject + I18n.locale = :'de-DE' + post.subject = 'bar' + assert_equal 'bar', post.subject + I18n.locale = :'en-US' + assert_equal 'foo', post.subject + I18n.locale = :'de-DE' + post.subject = 'bar' + end + test "has post_translations" do post = Post.create assert_nothing_raised { post.globalize_translations }