diff --git a/app/models/user.rb b/app/models/user.rb index 8871b2371..b87f24784 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -365,7 +365,8 @@ class User < ActiveRecord::Base def setup(opts) self.username = opts[:username] self.email = opts[:email] - self.language ||= 'en' + self.language = opts[:language] + self.language ||= I18n.locale.to_s self.valid? errors = self.errors errors.delete :person diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 8ac6489b8..b8316de16 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -216,9 +216,15 @@ describe User do it "should save with current language if blank" do I18n.locale = :fr - user = Factory(:user, :language => nil) + user = User.build(:username => 'max', :email => 'foo@bar.com', :password => 'password', :password_confirmation => 'password') user.language.should == 'fr' end + + it "should save with language what is set" do + I18n.locale = :fr + user = User.build(:username => 'max', :email => 'foo@bar.com', :password => 'password', :password_confirmation => 'password', :language => 'de') + user.language.should == 'de' + end end end