Skip to content

Commit 40d761c

Browse files
authored
Merge pull request rails#48987 from Austio/better-dom-id-error-on-nil
Adds a specific ArgumentError when passing nil to dom_id.
2 parents e98a6bd + 6245c00 commit 40d761c

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

actionview/lib/action_view/record_identifier.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,8 @@ def dom_class(record_or_class, prefix = nil)
9191
# dom_id(Post.find(45), :edit) # => "edit_post_45"
9292
# dom_id(Post, :custom) # => "custom_post"
9393
def dom_id(record_or_class, prefix = nil)
94+
raise ArgumentError, "dom_id must be passed a record_or_class as the first argument, you passed #{record_or_class.inspect}" unless record_or_class
95+
9496
record_id = record_key_for_dom_id(record_or_class) unless record_or_class.is_a?(Class)
9597
if record_id
9698
"#{dom_class(record_or_class, prefix)}#{JOIN}#{record_id}"

actionview/test/template/record_identifier_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ def test_dom_id_with_prefix
8383
assert_equal "edit_airplane_1", dom_id(@record, :edit)
8484
end
8585

86+
def test_dom_id_raises_useful_error_when_passed_nil
87+
assert_raises ArgumentError do
88+
ActionView::RecordIdentifier.dom_id(nil)
89+
end
90+
end
91+
8692
def test_dom_class
8793
assert_equal "airplane", dom_class(@record)
8894
end

0 commit comments

Comments
 (0)