From f7c916ece661ac0d5936ca47f83ebfbf4852a8bb Mon Sep 17 00:00:00 2001 From: Rick Olson Date: Tue, 24 Oct 2006 03:06:57 +0000 Subject: Added block-usage to PrototypeHelper#form_remote_tag, document block-usage of FormTagHelper#form_tag [Rick] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5346 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- actionpack/lib/action_view/helpers/form_tag_helper.rb | 15 ++++++++++++++- actionpack/lib/action_view/helpers/prototype_helper.rb | 9 +++++++-- actionpack/lib/action_view/helpers/tag_helper.rb | 4 ++-- 3 files changed, 23 insertions(+), 5 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_view/helpers/form_tag_helper.rb b/actionpack/lib/action_view/helpers/form_tag_helper.rb index 8d6d8e99ea..ca6d9e1841 100644 --- a/actionpack/lib/action_view/helpers/form_tag_helper.rb +++ b/actionpack/lib/action_view/helpers/form_tag_helper.rb @@ -12,6 +12,19 @@ module ActionView # Starts a form tag that points the action to an url configured with url_for_options just like # ActionController::Base#url_for. The method for the form defaults to POST. # + # Examples: + # * form_tag('/posts') =>
+ # * form_tag('/posts/1', :method => :put) => + # * form_tag('/upload', :multipart => true) => + # + # ERb example: + # <% form_tag '/posts' do -%> + #
<%= submit_tag 'Save' %>
+ # <% end -%> + # + # Will output: + #
+ # # Options: # * :multipart - If set to true, the enctype is set to "multipart/form-data". # * :method - The method to use when submitting the form, usually either "get" or "post". @@ -31,7 +44,7 @@ module ActionView html_options["method"] = "post" else html_options["method"] = "post" - method_tag = tag(:input, :type => "hidden", :name => "_method", :value => method) + method_tag = content_tag(:div, tag(:input, :type => "hidden", :name => "_method", :value => method), :style => 'margin:0;padding:0') end if block_given? diff --git a/actionpack/lib/action_view/helpers/prototype_helper.rb b/actionpack/lib/action_view/helpers/prototype_helper.rb index 1b4d2e71d8..f26b673fbc 100644 --- a/actionpack/lib/action_view/helpers/prototype_helper.rb +++ b/actionpack/lib/action_view/helpers/prototype_helper.rb @@ -164,7 +164,12 @@ module ActionView # # By default the fall-through action is the same as the one specified in # the :url (and the default method is :post). - def form_remote_tag(options = {}) + # + # form_remote_tag also takes a block, like form_tag: + # <% form_remote_tag :url => '/posts' do -%> + #
<%= submit_tag 'Save' %>
+ # <% end -%> + def form_remote_tag(options = {}, &block) options[:form] = true options[:html] ||= {} @@ -172,7 +177,7 @@ module ActionView (options[:html][:onsubmit] ? options[:html][:onsubmit] + "; " : "") + "#{remote_function(options)}; return false;" - form_tag(options[:html].delete(:action) || url_for(options[:url]), options[:html]) + form_tag(options[:html].delete(:action) || url_for(options[:url]), options[:html], &block) end # Works like form_remote_tag, but uses form_for semantics. diff --git a/actionpack/lib/action_view/helpers/tag_helper.rb b/actionpack/lib/action_view/helpers/tag_helper.rb index 8b8c7b491c..219888adb5 100644 --- a/actionpack/lib/action_view/helpers/tag_helper.rb +++ b/actionpack/lib/action_view/helpers/tag_helper.rb @@ -20,9 +20,9 @@ module ActionView #

Hello world!

# # ERb example: - # <% content_tag :div, :class => "strong" %> + # <% content_tag :div, :class => "strong" do -%> # Hello world! - # <% end %> + # <% end -%> # # Will output: #

Hello world!

-- cgit v1.2.3