From e18f045b6518d555f14ac84f39aa4177ea51185d Mon Sep 17 00:00:00 2001 From: Adam Niedzielski Date: Fri, 6 Sep 2013 13:41:24 +0200 Subject: form_for - fix :namespace and :as options clash :as option should not overwrite :namespace option when generating html id attribute of the form element. id should be prefixed by specified namespace even if :as option is present Add test case showing the issue and code fixing it --- actionview/lib/action_view/helpers/form_helper.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'actionview/lib/action_view') diff --git a/actionview/lib/action_view/helpers/form_helper.rb b/actionview/lib/action_view/helpers/form_helper.rb index 8a4830d887..ead7871fc5 100644 --- a/actionview/lib/action_view/helpers/form_helper.rb +++ b/actionview/lib/action_view/helpers/form_helper.rb @@ -442,10 +442,11 @@ module ActionView object = convert_to_model(object) as = options[:as] + namespace = options[:namespace] action, method = object.respond_to?(:persisted?) && object.persisted? ? [:edit, :patch] : [:new, :post] options[:html].reverse_merge!( class: as ? "#{action}_#{as}" : dom_class(object, action), - id: as ? "#{action}_#{as}" : [options[:namespace], dom_id(object, action)].compact.join("_").presence, + id: (as ? [namespace, action, as] : [namespace, dom_id(object, action)]).compact.join("_").presence, method: method ) -- cgit v1.2.3