diff options
Diffstat (limited to 'actionpack/lib/action_view')
-rw-r--r-- | actionpack/lib/action_view/helpers/form_helper.rb | 3 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/prototype_helper.rb | 1 | ||||
-rw-r--r-- | actionpack/lib/action_view/helpers/url_helper.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/partials.rb | 33 |
4 files changed, 28 insertions, 11 deletions
diff --git a/actionpack/lib/action_view/helpers/form_helper.rb b/actionpack/lib/action_view/helpers/form_helper.rb index d307c194d2..c985a22edb 100644 --- a/actionpack/lib/action_view/helpers/form_helper.rb +++ b/actionpack/lib/action_view/helpers/form_helper.rb @@ -167,6 +167,7 @@ module ActionView object = record_or_name object_name = ActionController::RecordIdentifier.singular_class_name(record_or_name) apply_form_for_options!(object, options) + args.unshift object end concat(form_tag(options.delete(:url) || {}, options.delete(:html) || {}), proc.binding) @@ -184,7 +185,7 @@ module ActionView options[:html] ||= {} options[:html].reverse_merge!(html_options) - options[:url] ||= polymorphic_path(object, self) + options[:url] ||= polymorphic_path(object) end # Creates a scope around a specific model object like form_for, but doesn't create the form tags themselves. This makes diff --git a/actionpack/lib/action_view/helpers/prototype_helper.rb b/actionpack/lib/action_view/helpers/prototype_helper.rb index 9bf9a71df2..1586a99e4c 100644 --- a/actionpack/lib/action_view/helpers/prototype_helper.rb +++ b/actionpack/lib/action_view/helpers/prototype_helper.rb @@ -191,6 +191,7 @@ module ActionView object = record_or_name object_name = ActionController::RecordIdentifier.singular_class_name(record_or_name) apply_form_for_options!(object, options) + args.unshift object end concat(form_remote_tag(options), proc.binding) diff --git a/actionpack/lib/action_view/helpers/url_helper.rb b/actionpack/lib/action_view/helpers/url_helper.rb index 2329fb4bc6..d22a1464a0 100644 --- a/actionpack/lib/action_view/helpers/url_helper.rb +++ b/actionpack/lib/action_view/helpers/url_helper.rb @@ -75,7 +75,7 @@ module ActionView url = @controller.send(:url_for, nil) else escape = false - url = polymorphic_path(options, self) + url = polymorphic_path(options) end escape ? html_escape(url) : url diff --git a/actionpack/lib/action_view/partials.rb b/actionpack/lib/action_view/partials.rb index 3d57574aaf..4d7e276255 100644 --- a/actionpack/lib/action_view/partials.rb +++ b/actionpack/lib/action_view/partials.rb @@ -48,19 +48,34 @@ module ActionView private # Deprecated, use render :partial def render_partial(partial_path, local_assigns = nil, deprecated_local_assigns = nil) #:nodoc: - path, partial_name = partial_pieces(partial_path) - object = extracting_object(partial_name, local_assigns, deprecated_local_assigns) - local_assigns = extract_local_assigns(local_assigns, deprecated_local_assigns) - local_assigns = local_assigns ? local_assigns.clone : {} - add_counter_to_local_assigns!(partial_name, local_assigns) - add_object_to_local_assigns!(partial_name, local_assigns, object) + case partial_path + when String, Symbol, NilClass + path, partial_name = partial_pieces(partial_path) + object = extracting_object(partial_name, local_assigns, deprecated_local_assigns) + local_assigns = extract_local_assigns(local_assigns, deprecated_local_assigns) + local_assigns = local_assigns ? local_assigns.clone : {} + add_counter_to_local_assigns!(partial_name, local_assigns) + add_object_to_local_assigns!(partial_name, local_assigns, object) - if logger - ActionController::Base.benchmark("Rendered #{path}/_#{partial_name}", Logger::DEBUG, false) do + if logger + ActionController::Base.benchmark("Rendered #{path}/_#{partial_name}", Logger::DEBUG, false) do + render("#{path}/_#{partial_name}", local_assigns) + end + else render("#{path}/_#{partial_name}", local_assigns) end + when Array + if partial_path.any? + path = ActionController::RecordIdentifier.partial_path(partial_path.first) + collection = partial_path + render_partial_collection(path, collection, nil, local_assigns.value) + else + "" + end else - render("#{path}/_#{partial_name}", local_assigns) + render_partial( + ActionController::RecordIdentifier.partial_path(partial_path), + local_assigns, deprecated_local_assigns) end end |