在 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"
这很有用,但我不太喜欢它。
有没有其他方法可以使重定向(在签名控制器中)工作而无需添加专用路由?
既然它的命名空间应该是这样的
redirect_to masterdata_project_path(@project)
我假设您的创建操作中有一个名为 @project
的项目实例