Browse Source

Fixed Stack level too deep error when calling #find_name_by_reflection for missing record.

git-svn-id: http://svn.redmine.org/redmine/trunk@14002 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/3.0.0
Jean-Philippe Lang 9 years ago
parent
commit
3642626052
2 changed files with 7 additions and 3 deletions
  1. 3
    3
      app/helpers/issues_helper.rb
  2. 4
    0
      test/unit/helpers/issues_helper_test.rb

+ 3
- 3
app/helpers/issues_helper.rb View File

@@ -460,14 +460,14 @@ module IssuesHelper
end
@detail_value_name_by_reflection ||= Hash.new do |hash, key|
association = Issue.reflect_on_association(key.first.to_sym)
name = nil
if association
record = association.klass.find_by_id(key.last)
if record
record.name.force_encoding('UTF-8')
hash[key] = record.name
name = record.name.force_encoding('UTF-8')
end
end
hash[key] ||= nil
hash[key] = name
end
@detail_value_name_by_reflection[[field, id]]
end

+ 4
- 0
test/unit/helpers/issues_helper_test.rb View File

@@ -295,4 +295,8 @@ class IssuesHelperTest < ActionView::TestCase
assert_equal "Precedes deleted (Issue ##{issue.id})", show_detail(detail, true)
assert_equal "<strong>Precedes</strong> deleted (<i>Issue ##{issue.id}</i>)", show_detail(detail, false)
end

def test_find_name_by_reflection_should_return_nil_for_missing_record
assert_nil find_name_by_reflection('status', 99)
end
end

Loading…
Cancel
Save