2011-08-20 17 views
6

Bu url'den http://www.helloworlder.com/?p=6 redirect_to veya render için bir sözdizimi buldum, bir dize bekler. Bunun gibiredirect_to (@model) raylarda ne anlama geliyor?

:

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

Ama yakut içinde

i redirect_to(@model) gibi bir şey görmek kılavuzları raylar. Dokümanlarında eylem göstermeye gideceği belirtilmiştir. Lütfen redirect_to(@model)'un ne anlama geldiğini açıklayınız.

Teşekkür

cevap

3

Burada kaynağında bakabilirsiniz: redirect_to bir Model alır https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb

, bu polymorphic_url yöntemini çağırarak yolunu almak için birkaç yöntemlerle filtreler.

# 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() 

Esasen, sorunuzun cevabı o model_path (@model) yöntemi için (eşit biçimde) çağırır olmasıdır: Bu yöntem için API [1] Aslında burada yorumlardan kopyalanan detayların bir yeri vardır model

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