From: Jean-Philippe Lang Date: Sun, 18 Jan 2015 11:43:58 +0000 (+0000) Subject: Use attribute writers instead of before_create callback to normalize comments and... X-Git-Tag: 3.0.0~126 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=0bcd5be0a585e835b04e6e88e69a87d5d94daf45;p=redmine.git Use attribute writers instead of before_create callback to normalize comments and committer (#14534). Unlike other adapters, SQLite raises Encoding::UndefinedConversionError before the callback that reencodes attributes is called. git-svn-id: http://svn.redmine.org/redmine/trunk@13896 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 499191070..c03296451 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -69,6 +69,16 @@ class Changeset < ActiveRecord::Base end end + def committer=(arg) + write_attribute :committer, + self.class.to_utf8(arg, repository.try(:repo_log_encoding)) + end + + def comments=(arg) + write_attribute :comments, + self.class.normalize_comments(arg, repository.try(:repo_log_encoding)) + end + def committed_on=(date) self.commit_date = date super @@ -92,9 +102,7 @@ class Changeset < ActiveRecord::Base end def before_create_cs - self.committer = self.class.to_utf8(self.committer, repository.repo_log_encoding) - self.comments = self.class.normalize_comments( - self.comments, repository.repo_log_encoding) + self.comments ||= '' self.user = repository.find_committer_user(self.committer) end