这有点复杂。但是我有命名空间的路由,这个表单负责处理由两个不同控制器共享的 Customer 模型。
我的路线:
namespace "self_service" do
resources :customers
我实例化编辑表单的糟糕尝试
= form_for [:self_service, @current_customer], action: 'update', method: :put do |f|
我的控制器
class SelfService::CustomersController < SelfService::BaseController
layout 'self_service'
def edit
end
def update
end
end
这个实例化做了两件事是错误的:
表单的 url 是
/customers/146/self_service
。但不应该反过来吗?不应该self_service/customers/146/
吗?当我点击提交时,我得到一个
No route matches "/customers/146/self_service"
更新
事实证明,这.. :
resources :customers do
member do
get :self_service
..与此相矛盾:
namespace "self_service" do
resources :customers
end
但这里困扰我的是..他们为什么要相互矛盾?一个应该是:
customers/:id/self_service
另一个是:
self_service/customers/:id