mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Clean up the simply_helpful merge.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@6751 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
ebee0a742d
commit
1ac7cd56fe
8 changed files with 46 additions and 32 deletions
|
@ -560,7 +560,7 @@ module ActionController #:nodoc:
|
|||
when Hash
|
||||
@url.rewrite(rewrite_options(options))
|
||||
else
|
||||
polymorphic_url(options, self)
|
||||
polymorphic_url(options)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1034,7 +1034,6 @@ module ActionController #:nodoc:
|
|||
|
||||
else
|
||||
redirect_to(url_for(options))
|
||||
response.redirected_to = options
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,40 +1,38 @@
|
|||
module ActionController
|
||||
module PolymorphicRoutes
|
||||
extend self
|
||||
|
||||
def polymorphic_url(record_or_hash, url_writer, options = {})
|
||||
def polymorphic_url(record_or_hash, options = {})
|
||||
record = extract_record(record_or_hash)
|
||||
|
||||
case
|
||||
when options[:action] == "new"
|
||||
url_writer.send(
|
||||
send(
|
||||
action_prefix(options) + RecordIdentifier.singular_class_name(record) + routing_type(options)
|
||||
)
|
||||
|
||||
when record.respond_to?(:new_record?) && record.new_record?
|
||||
url_writer.send(
|
||||
send(
|
||||
action_prefix(options) + RecordIdentifier.plural_class_name(record) + routing_type(options)
|
||||
)
|
||||
|
||||
else
|
||||
url_writer.send(
|
||||
send(
|
||||
action_prefix(options) + RecordIdentifier.singular_class_name(record) + routing_type(options), record_or_hash
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def polymorphic_path(record_or_hash, url_writer)
|
||||
polymorphic_url(record_or_hash, url_writer, :routing_type => :path)
|
||||
def polymorphic_path(record_or_hash)
|
||||
polymorphic_url(record_or_hash, :routing_type => :path)
|
||||
end
|
||||
|
||||
%w( edit new formatted ).each do |action|
|
||||
module_eval <<-EOT
|
||||
def #{action}_polymorphic_url(record_or_hash, url_writer)
|
||||
polymorphic_url(record_or_hash, url_writer, :action => "#{action}")
|
||||
module_eval <<-EOT, __FILE__, __LINE__
|
||||
def #{action}_polymorphic_url(record_or_hash)
|
||||
polymorphic_url(record_or_hash, :action => "#{action}")
|
||||
end
|
||||
|
||||
def #{action}_polymorphic_path(record_or_hash, url_writer)
|
||||
polymorphic_url(record_or_hash, url_writer, :action => "#{action}", :routing_type => :path)
|
||||
def #{action}_polymorphic_path(record_or_hash)
|
||||
polymorphic_url(record_or_hash, :action => "#{action}", :routing_type => :path)
|
||||
end
|
||||
EOT
|
||||
end
|
||||
|
@ -44,13 +42,13 @@ module ActionController
|
|||
def action_prefix(options)
|
||||
options[:action] ? "#{options[:action]}_" : ""
|
||||
end
|
||||
|
||||
|
||||
def routing_type(options)
|
||||
"_#{options[:routing_type] || "url"}"
|
||||
end
|
||||
|
||||
|
||||
def extract_record(record_or_hash)
|
||||
record_or_hash.is_a?(Hash) ? record_or_hash[:id] : record_or_hash
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -601,11 +601,11 @@ class FormHelperTest < Test::Unit::TestCase
|
|||
|
||||
|
||||
protected
|
||||
def polymorphic_path(record, url_writer)
|
||||
def polymorphic_path(record)
|
||||
if record.new_record?
|
||||
"/posts"
|
||||
else
|
||||
"/posts/#{record.id}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -214,7 +214,7 @@ class PrototypeHelperTest < Test::Unit::TestCase
|
|||
"/authors"
|
||||
end
|
||||
|
||||
def polymorphic_path(record, url_writer)
|
||||
def polymorphic_path(record)
|
||||
if record.new_record?
|
||||
"/authors"
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue