私はモバイルAPI用のルートを設定しようとしていますが、バージョンがapi-pathである必要があります。私は既に別のコントローラAuthController/controllers/api/v1/mobile/に配置されているモバイル認証を行うことができます。ルーティングエラー:初期化されていない定数
使用例:
myapp.com/api/v1/mobile/auth
しかし、今、私は追加のAPI-ルートとしてこのパスパターンに私の既存のressources-コントローラを登録します。具体的には、これは/controllers/tracker/tasks_controller.rbにあるTasksControllerになります。だから私は、ルート定義にモバイルルートを追加しました:
# routes.rb
namespace :tracker, path: 'timetracking' do
resources :tasks, 'jobs'
end
namespace :api do
namespace :v1 do
namespace :mobile do
resources :auth, :only => [:create, :destroy]
namespace :tracker do #added mobile route
resource :tasks, controller: 'tracker/tasks', as: :mobile_tasks
end
end
end
end
しかし、私はmyapp.com/api/v1/mobile/tracker/tasksを呼び出すときには、エラーメッセージで結果:
上記の元のタスクルートとの競合を避けるために、特に:mobile_tasksエイリアスをこのルートに追加しました。任意のアイデア、どのようにこのルートのコントローラを正しく設定するには?
更新#1
代わりに、名前空間の範囲として、このルートを定義する、aswell動作しませんでした。
scope "/api/v1/mobile/tracker" do
resources :tasks, controller: 'tracker/tasks', as: :mobile_tasks
end
しかし今回は、ルートパス自体も解決しませんでした。
Routing Error
No route matches [GET] "/api/v1/mobile/tracker/tasks"
私はそれが私の追加のモバイル-APIのルートは完全に異なる名前空間トラッカーを指すようにしようという、問題があるかもしれないと仮定します。
こんにちはKrists、あなたの答えに感謝します。私はあなたの提案に関するレール出力で質問文を更新しました。 – loybert
'rake routes'コマンドを試して、定義されたすべてのルートを一致順と名前で表示しましたか?この問題をデバッグするのに役立ちます。 – Krists
'rake routes'の良いヒントです。この問題を解決するために私を助けました:) – loybert