method
polymorphic_url
Ruby on Rails latest stable (v7.1.3.2)
-
0 notes -
Class: ActionDispatch::Routing::PolymorphicRoutes
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0 (0)
- 3.0.9 (-4)
- 3.1.0 (0)
- 3.2.1 (0)
- 3.2.8 (0)
- 3.2.13 (0)
- 4.0.2 (-1)
- 4.1.8 (38)
- 4.2.1 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1 (0)
- 5.1.7 (3)
- 5.2.3 (0)
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0 (0)
- 7.1.3.2 (0)
- 7.1.3.4 (0)
- What's this?
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()