diff options
author | Louise Crow <louise.crow@gmail.com> | 2015-05-07 11:41:12 +0100 |
---|---|---|
committer | Louise Crow <louise.crow@gmail.com> | 2015-05-07 12:17:12 +0100 |
commit | 824771a4fb7846bec13e395e44f14718ff30d17d (patch) | |
tree | d565f6c430c126a56f1bb889383c7199d11a0c17 /app/models/info_request_event.rb | |
parent | 751bd3df3b6b28275e0ac9f6b1663c1df84d007f (diff) |
Force the encoding of values returned from YAML.
This is a workaround for an issue where YAML in ruby 1.8 tags UTF-8
heavy strings as binary, resulting in them being retrieved under 1.9
as ASCII-8BIT which can't be concatenated with UTF-8.
Described as "Deep deep YAML oddness" in
https://www.zendesk.com/blog/upgrade-the-road-to-1-9/.
Diffstat (limited to 'app/models/info_request_event.rb')
-rw-r--r-- | app/models/info_request_event.rb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/app/models/info_request_event.rb b/app/models/info_request_event.rb index 9dde3ba80..8a113cbf8 100644 --- a/app/models/info_request_event.rb +++ b/app/models/info_request_event.rb @@ -279,9 +279,15 @@ class InfoRequestEvent < ActiveRecord::Base end self.params_yaml = params.to_yaml end + def params - YAML.load(self.params_yaml) + param_hash = YAML.load(params_yaml) + param_hash.each do |key, value| + param_hash[key] = value.force_encoding('UTF-8') if value.respond_to?(:force_encoding) + end + param_hash end + def params_yaml_as_html ret = '' # split out parameters into old/new diffs, and other ones |