从这个网址http://www.helloworlder.com/?p=6我找到了redirect_to或render的语法,需要一个字符串。
像这样:
render(:action=>’my_action’)
redirect_to(:action=>’my_action’)
但是在ruby rails指南中,我看到redirect_to(@model)
之类的东西。在他们的文档中说明它将展示行动。请解释redirect_to(@model)
的含义。
由于
答案 0 :(得分:4)
答案 1 :(得分:3)
你可以在这里查看来源: https://github.com/rails/rails/blob/master/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb
当redirect_to接受Model时,它会过滤几个方法来获取调用polymorphic_url方法的路径。这个方法[1]的API实际上有很多细节,从这里的评论中复制出来:
# 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()
基本上,您的问题的答案是它(等效地)调用模型的model_path(@model)方法。
[1] http://apidock.com/rails/ActionController/PolymorphicRoutes/polymorphic_url