これはちょっと複雑です。しかし、私は名前空間のルートを持っており、このフォームは2つの異なるコントローラーによって共有される顧客モデルを処理しています。
私のルート:
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
このインスタンス化は、間違っている2つのことを行います。
フォームの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
しかし、ここで私を悩ませているのは..なぜそれらは互いに矛盾する必要があるのでしょうか?1つは:
customers/:id/self_service
そしてもう1つは:
self_service/customers/:id