What does redirect_to (@model) mean in rails?

From this url http://www.helloworlder.com/?p=6 I found the syntax for redirect_to or render, expect a string.

Like this:

render(:action=>'my_action') redirect_to(:action=>'my_action') 

But in ruby ​​guides I see something like redirect_to(@model) . His documents say that he will show the action. Please explain what redirect_to(@model) means.

thanks

+6
source share
2 answers

For example, you have a Post model.

redirect_to @model will take you to this page:

http: // yourapp / posts /: id / show

+3
source

You can see the source here: https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb

When redirect_to accepts the model, it filters several methods to get the path that calls the polymorphic_url method. The API for this method [1] actually has many details copied from the comments here:

  # 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 # # * <tt>:action</tt> - Specifies the action prefix for the named route: # <tt>:new</tt> or <tt>:edit</tt>. Default is no prefix. # * <tt>:routing_type</tt> - Allowed values are <tt>:path</tt> or <tt>:url</tt>. # Default is <tt>:url</tt>. # # ==== Examples # # # 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() 

Essentially, the answer to your question is that it calls (equivalently) the model_path (@model) method for the model.

[1] http://apidock.com/rails/ActionController/PolymorphicRoutes/polymorphic_url

+3
source

Source: https://habr.com/ru/post/895483/


All Articles