前提・実現したいこと
devise-token-authを使用して認証機能を作成しており、現在以下のようなコードです
routes
1namespace :api do 2 resources :users 3 mount_devise_token_auth_for 'User', at: 'user', controllers: { 4 registrations: 'api/user/registrations' 5 } 6 end
bash
1 GET /api/user/cancel(.:format) api/user/registrations#cancel 2 GET /api/user/sign_up(.:format) api/user/registrations#new 3 GET /api/user/edit(.:format) api/user/registrations#edit 4 PATCH /api/user(.:format) api/user/registrations#update 5 PUT /api/user(.:format) api/user/registrations#update 6 DELETE /api/user(.:format) api/user/registrations#destroy 7 POST /api/user(.:format) api/user/registrations#create
今回は以下のようなルーティングに変更したいのですが、どのようにすればいいのでしょうか。
GET /api/user/cancel(.:format) api/user/registrations#cancel GET /api/user/sign_up(.:format) api/user/registrations#new GET /api/user/edit(.:format) api/user/registrations#edit PATCH /api/user(.:format) api/user/registrations#update POST /api/user/update(.:format) api/user/registrations#update //↑PUTからPOSTに変更したい。被ってしまうのでURLも変更したい。 DELETE /api/user(.:format) api/user/registrations#destroy POST /api/user(.:format) api/user/registrations#create
試したこと
namespace :api do resources :users mount_devise_token_auth_for 'User', at: 'user', skip: [:registrations] devise_for :user get '/user/sign_in', to: '/user/registrations#new' //中略 end
などと試してみましたが、うまくいきません。
devise-token-authのルートの変更方法のご教授をよろしくお願いいたします。
なんのためにルートを変更する必要がありますか?
コメントありがとうございます!
active recordを使用してプロフィール画像を登録できるようにしたくて調べたのですが、vue側からupdateアクションにformDataを送信する際にpostで送信しなければならないとのことでした。そうするとcreateアクションと被ってしまうのです。
解決策ありますでしょうか?
_method=putをパラメータに追加してもダメでしょうか?
put送信でmethod="post"を設定したらrails側ではpostとして処理してくれるということでしょうか?
Rack::MethodOverrideがデフォルトで使われているので「_method」で設定できます。
ありがとうございました!
その通りの方法でmehodをpostで送るやり方は解決致しました!
ベストアンサーにしたかったのですが、修正依頼となっているのでボタンが表示されていません。。。
回答1件
あなたの回答
tips
プレビュー