Permalink
Browse files

Fixed form_for regression (closes #3962) [t.lucas@toolmantim.com]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3666 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 841d596 commit 6a83ebfe703e922c4b0e2333521ed23208003f13 @dhh dhh committed Feb 26, 2006
Showing with 20 additions and 1 deletion.
  1. +1 −1 actionpack/lib/action_view/helpers/form_helper.rb
  2. +19 −0 actionpack/test/template/form_helper_test.rb
@@ -122,7 +122,7 @@ module FormHelper
#
def form_for(object_name, object, options = {}, &proc)
raise ArgumentError, "Missing block" unless block_given?
- concat(form_tag(options, options.delete(:html) || {}), proc.binding)
+ concat(form_tag(options.delete(:url) || {}, options.delete(:html) || {}), proc.binding)
fields_for(object_name, object, options, &proc)
concat('</form>', proc.binding)
end
@@ -30,7 +30,9 @@ def @post.id_before_type_cast; 123; end
@post.written_on = Date.new(2004, 6, 15)
@controller = Class.new do
+ attr_reader :url_for_options
def url_for(options, *parameters_for_method_reference)
+ @url_for_options = options
"http://www.example.com"
end
end
@@ -355,6 +357,23 @@ def test_form_for_with_html_options_adds_options_to_form_tag
assert_dom_equal expected, _erbout
end
+ def test_form_for_with_string_url_option
+ _erbout = ''
+
+ form_for(:post, @post, :url => 'http://www.otherdomain.com') do |f| end
+
+ assert_equal 'http://www.otherdomain.com', @controller.url_for_options
+ end
+
+ def test_form_for_with_hash_url_option
+ _erbout = ''
+
+ form_for(:post, @post, :url => {:controller => 'controller', :action => 'action'}) do |f| end
+
+ assert_equal 'controller', @controller.url_for_options[:controller]
+ assert_equal 'action', @controller.url_for_options[:action]
+ end
+
def test_remote_form_for_with_html_options_adds_options_to_form_tag
self.extend ActionView::Helpers::PrototypeHelper
_erbout = ''

0 comments on commit 6a83ebf

Please sign in to comment.