Rails-如果路径被约束包裹,则redirect_to无法找到路线

时间:2019-06-12 17:41:36

标签: ruby-on-rails ruby

我有这样的路线被约束包裹。

constraints DomainConstraint.new('admin.example.com') do
  get '/admin/:page', to: 'admin#browse', as: :admin_index
end

constraints DomainConstraint.new('client.example.com') do
  get '/:page', to: 'client#index', as: :client_index
end

现在,当我想通过以下方式将请求从admin.example.com控制器重定向到client控制器时:

def some_page
  redirect_to action: :client_index, 
end

它说:

No route matches

我相信这是因为我用约束包裹了路线。如何使用constraints将管理员重定向到客户端?

1 个答案:

答案 0 :(得分:2)

如果未指定控制器名称,则action参数将对同一控制器执行操作的名称,导致代码不起作用的原因。

更改代码
def some_page
   redirect_to action: :client_index, 
end

收件人

def some_page
   redirect_to controller: 'client', action: :index 
end

有关redirect_to here

的更多信息