Skip to content

Commit 10d880d

Browse files
authored
Merge pull request rails#49718 from fatkodima/fix-ordered_options-nested-dig
Fix `OrderedOptions#dig` for array indexes
2 parents a60a5d0 + 1b21142 commit 10d880d

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

activesupport/lib/active_support/ordered_options.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ def [](key)
4242
super(key.to_sym)
4343
end
4444

45-
def dig(*keys)
46-
super(*keys.flatten.map(&:to_sym))
45+
def dig(key, *identifiers)
46+
super(key.to_sym, *identifiers)
4747
end
4848

4949
def method_missing(name, *args)

activesupport/test/ordered_options_test.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,14 @@ def test_string_dig
4646
assert_equal 56, a.dig("test_key")
4747
end
4848

49+
def test_nested_dig
50+
a = ActiveSupport::OrderedOptions.new
51+
52+
a[:test_key] = [{ a: 1 }]
53+
assert_equal 1, a.dig(:test_key, 0, :a)
54+
assert_nil a.dig(:test_key, 1, :a)
55+
end
56+
4957
def test_method_access
5058
a = ActiveSupport::OrderedOptions.new
5159

0 commit comments

Comments
 (0)