mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Added :format option for form_for helper and spec for this [#5226 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
This commit is contained in:
@@ -202,6 +202,12 @@ module ActionView
|
||||
# ...
|
||||
# <% end %>
|
||||
#
|
||||
# You can also set the answer format, like this:
|
||||
#
|
||||
# <%= form_for(@post, :format => :json) do |f| %>
|
||||
# ...
|
||||
# <% end %>
|
||||
#
|
||||
# If you have an object that needs to be represented as a different
|
||||
# parameter, like a Client that acts as a Person:
|
||||
#
|
||||
@@ -332,7 +338,9 @@ module ActionView
|
||||
|
||||
options[:html] ||= {}
|
||||
options[:html].reverse_merge!(html_options)
|
||||
options[:url] ||= polymorphic_path(object_or_array)
|
||||
options[:url] ||= options[:format] ? \
|
||||
polymorphic_path(object_or_array, :format => options.delete(:format)) : \
|
||||
polymorphic_path(object_or_array)
|
||||
end
|
||||
|
||||
# Creates a scope around a specific model object like form_for, but
|
||||
|
||||
@@ -641,6 +641,18 @@ class FormHelperTest < ActionView::TestCase
|
||||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_form_for_with_format
|
||||
form_for(@post, :format => :json, :html => { :id => "edit_post_123", :class => "edit_post" }) do |f|
|
||||
concat f.label(:title)
|
||||
end
|
||||
|
||||
expected = whole_form("/posts/123.json", "edit_post_123" , "edit_post", :method => "put") do
|
||||
"<label for='post_title'>Title</label>"
|
||||
end
|
||||
|
||||
assert_dom_equal expected, output_buffer
|
||||
end
|
||||
|
||||
def test_form_for_with_symbol_object_name
|
||||
form_for(@post, :as => "other_name", :html => { :id => 'create-post' }) do |f|
|
||||
concat f.label(:title, :class => 'post_title')
|
||||
@@ -1761,8 +1773,12 @@ class FormHelperTest < ActionView::TestCase
|
||||
"/posts"
|
||||
end
|
||||
|
||||
def post_path(post)
|
||||
"/posts/#{post.id}"
|
||||
def post_path(post, options = {})
|
||||
if options[:format]
|
||||
"/posts/#{post.id}.#{options[:format]}"
|
||||
else
|
||||
"/posts/#{post.id}"
|
||||
end
|
||||
end
|
||||
|
||||
def protect_against_forgery?
|
||||
|
||||
Reference in New Issue
Block a user