我有一个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 –