我有一個rails API應用程序,我用Devise gem進行用戶管理。我從設計寶石創建了一個用戶模型。之後,我注意到在rake routes
命令中列出了兩條相同的路由。我想POST (/users)
先致電api/v1/users#create
行動,然後致電devise/registrations#create
。Rails相同的路線(POST /用戶)爲不同的控制器操作[設計]
user_registration POST /users(.:format) devise/registrations#create
api_users POST /users(.:format) api/v1/users#create {:format=>:json}
當我使用users_controller_spec文件來測試POST (/users)
,api/v1/users#create
動作被調用。但是,當我使用POSTMAN執行POST (/users)
時,日誌指示將調用devise/registrations#create
操作。
我該如何解決這個問題,以便POST (/users)
我首先使用POSTMAN或curl調用api/v1/users#create
來創建用戶模型,然後調用devise/registrations#create
來註冊用戶?
我不是100%確定如何設計的作品,所以這裏的任何幫助將有所幫助。
這是我config/routes.rb
Rails.application.routes.draw do
devise_for :users
# Api definition
namespace :api, defaults: { format: :json }, path: '/' do
scope module: :v1, constraints: ApiConstraints.new(version: 1, default: true) do
# We are going to list our resources here
resources :users, only: [:show, :create, :update, :destroy]
resources :sessions, only: [:create, :destroy]
end
end
end
請您發表您的**'配置/ routes.rb' **文件? –
您的rails版本請,也只是想知道什麼類型的請求你打這個方法,例如json,html等,請張貼您的路由文件也@millin –
我正在做json請求,因爲我可以創建一個API @ ManojMenon –