9

在 Rails 中,redirect_to如果您已将对象声明为路由中的资源,则可以将其传递给:

redirect_to @post

我有一个Attachment属于所有者的多态对象。@attachment.owner可以是任何对象。我需要重定向到附件的所有者,但附件及其所有者都是管理命名空间中的资源:

namespace :admin do
  resources :attachments, :posts, :comments #etc
end

如果我知道这@attachment.owner是一个帖子,我可以redirect_to admin_post_path(@attachment.owner),但既然它可以是任何对象,我该如何进行重定向?

4

2 回答 2

9

您可以使用polymorphic_path

polymorphic_path([:admin, @attachment.owner])
于 2012-06-02T19:13:48.027 回答
0

redirect_to 将符号作为参数。定义一个具有相同名称的私有方法并评估该方法中的 url。

redirect_to :my_owner

private

define my_owner
  <evaluate the path here>
end
于 2012-06-02T19:14:14.110 回答