Skip to content

Commit d3e763b

Browse files
committed
Fix partial for Active Model when extra locals are passed in
Revert 44b42f9 Fixes #616.
1 parent 018083d commit d3e763b

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

‎lib/jbuilder/jbuilder_template.rb‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def initialize(context, options = nil)
5252
# json.comments @post.comments, partial: "comments/comment", as: :comment, cached: true
5353
#
5454
def partial!(*args)
55-
if _is_active_model?(args.first)
55+
if args.one? && _is_active_model?(args.first)
5656
_render_active_model_partial args.first
5757
else
5858
options = args.extract_options!.dup

‎test/jbuilder_template_test.rb‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class JbuilderTemplateTest < ActiveSupport::TestCase
1818

1919
RACER_PARTIAL = <<-JBUILDER
2020
json.extract! racer, :id, :name
21+
json.highlighted local_assigns.fetch(:highlighted, false)
2122
JBUILDER
2223

2324
PARTIALS = {
@@ -82,6 +83,13 @@ class JbuilderTemplateTest < ActiveSupport::TestCase
8283
assert_equal "Chris Harris", result["name"]
8384
end
8485

86+
test "partial for Active Model preserves extra locals" do
87+
result = render('json.partial! @racer, highlighted: true', racer: Racer.new(123, "Chris Harris"))
88+
assert_equal 123, result["id"]
89+
assert_equal "Chris Harris", result["name"]
90+
assert_equal true, result["highlighted"]
91+
end
92+
8593
test "partial collection by name with symbol local" do
8694
result = render('json.partial! "post", collection: @posts, as: :post', posts: POSTS)
8795
assert_equal 10, result.count

0 commit comments

Comments
 (0)