method
polymorphic_url
v7.2.3 -
Show latest stable
- Class:
ActionDispatch::Routing::PolymorphicRoutes
polymorphic_url(record_or_hash_or_array, options = {})public
Constructs a call to a named RESTful route for the given record and returns the resulting URL string. For example:
# calls post_url(post) polymorphic_url(post) # => "http://example.com/posts/1" polymorphic_url([blog, post]) # => "http://example.com/blogs/1/posts/1" polymorphic_url([:admin, blog, post]) # => "http://example.com/admin/blogs/1/posts/1" polymorphic_url([user, :blog, post]) # => "http://example.com/users/1/blog/posts/1" polymorphic_url(Comment) # => "http://example.com/comments"
#### Options
-
`:action` - Specifies the action prefix for the named route: `:new` or `:edit`. Default is no prefix.
-
`:routing_type` - Allowed values are `:path` or `:url`. Default is `:url`.
Also includes all the options from `url_for`. These include such things as `:anchor` or `:trailing_slash`. Example usage is given below:
polymorphic_url([blog, post], anchor: 'my_anchor') # => "http://example.com/blogs/1/posts/1#my_anchor" polymorphic_url([blog, post], anchor: 'my_anchor', script_name: "/my_app") # => "http://example.com/my_app/blogs/1/posts/1#my_anchor"
For all of these options, see the documentation for [url_for](rdoc-ref:ActionDispatch::Routing::UrlFor).
#### Functionality
# an Article record polymorphic_url(record) # same as article_url(record) # a Comment record polymorphic_url(record) # same as comment_url(record) # it recognizes new records and maps to the collection record = Comment.new polymorphic_url(record) # same as comments_url() # the class of a record will also map to the collection polymorphic_url(Comment) # same as comments_url()