在名称范围内重定向显示操作

问题描述 投票:0回答:1

在 Rails 应用程序中,我有以下路线。

namespace :masterdata do
  resources :projects do
    resource :approval, only: [:new], controller: "project_approvals"
  end
end

提交

masterdata_parameter_approval#new
表单时,会通过调用
Signature
操作来创建
signatures#create

由于签名与多个模型关联,因此

signatures#create
操作会重定向到已签名模型的
show
操作。

redirect_to params[:signature].signable

由于

projects
路由已命名,我收到一条错误消息,告诉我
project_url
不存在。

为了解决这个问题,我添加了以下路线:

get "/projects/:id", to: redirect("/masterdata/projects/%{id}"), as: "project"

这很有用,但我不太喜欢它。

有没有其他方法可以使重定向(在签名控制器中)工作而无需添加专用路由?

ruby-on-rails
1个回答
0
投票

既然它的命名空间应该是这样的

redirect_to masterdata_project_path(@project)

我假设您的创建操作中有一个名为 @project

的项目实例
© www.soinside.com 2019 - 2024. All rights reserved.