aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r--actionpack/lib/action_dispatch/routing/polymorphic_routes.rb13
1 files changed, 10 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
index 512e23c833..1c44d25ef6 100644
--- a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
+++ b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
@@ -165,8 +165,11 @@ module ActionDispatch
end
def polymorphic_mapping(record)
- return false unless record.respond_to?(:to_model)
- _routes.polymorphic_mappings[record.to_model.model_name.name]
+ if record.respond_to?(:to_model)
+ _routes.polymorphic_mappings[record.to_model.model_name.name]
+ else
+ _routes.polymorphic_mappings[record.class.name]
+ end
end
class HelperMethodBuilder # :nodoc:
@@ -321,7 +324,11 @@ module ActionDispatch
private
def polymorphic_mapping(target, record)
- target._routes.polymorphic_mappings[record.to_model.model_name.name]
+ if record.respond_to?(:to_model)
+ target._routes.polymorphic_mappings[record.to_model.model_name.name]
+ else
+ target._routes.polymorphic_mappings[record.class.name]
+ end
end
def get_method_for_class(klass)