Ich habe eine Rails-API-Anwendung, wo ich Devise Juwel für Benutzerverwaltung verwenden. Ich habe ein Benutzermodell aus dem Devise-Juwel erstellt. Danach bemerkte ich, dass ich zwei gleiche Routen im rake routes
Befehl aufgeführt habe. Ich möchte POST (/users)
anrufen api/v1/users#create
Aktion zuerst und dann devise/registrations#create
anrufen.Rails gleiche Route (POST/Benutzer) für verschiedene Controller-Aktionen [Devise]
user_registration POST /users(.:format) devise/registrations#create
api_users POST /users(.:format) api/v1/users#create {:format=>:json}
Wenn ich testen POST (/users)
users_controller_spec Datei verwenden, wird api/v1/users#create
Aktion aufgerufen. Wenn ich jedoch eine POST (/users)
mit POSTMAN, die Protokolle zeigen, dass devise/registrations#create
Aktion stattdessen aufgerufen wird.
Wie korrigiere ich dies, so dass die POST (/users)
ich POSTMAN oder curl Anrufe api/v1/users#create
zuerst zum Erstellen des Benutzermodells und dann Anrufe devise/registrations#create
, um den Benutzer zu registrieren?
Ich bin nicht 100% sicher, wie das Gerät funktioniert, also wäre jede Hilfe hier hilfreich.
Das ist mein 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
bitte Sie posten Sie Ihre ** 'config/routes.rb' ** Datei? –
Ihre Rails-Version bitte, wollen auch nur wissen, welche Art von Anfrage Sie auf diese Methoden treffen, zB json, html etc, bitte posten Sie Ihre Routen-Datei auch @millin –
Ich mache json Anfrage, weil ich eine API erstellen kann @ ManojMenon –