2016-04-09 13 views
1

Ich verwende Rails 4, Devise für auth und React.JS für Ansichten über die React-Rails eines Projekts.devise react-rails Registrierungsformular Problem

Derzeit versuche ich, benutzerdefinierte Registrierung funktioniert zu bekommen. Ich folgte den Anweisungen Schritt für Schritt, passte meinen Routing an meine User/Registrations_Controllers an und brachte alles auf den Punkt.

Ich benutze jquery, um die Ajax von meinem Formular am Front-End abzufeuern. Derzeit haben einige Daten zum Testen fest codiert.

Ich bekomme jetzt eine 422 Antwort, die besagt, dass es nicht finden kann, Passwort und E-Mail, wenn ich es sende. Es erwähnt jedoch nichts über die anderen Werte, die übergeben werden, also scheint es, als ob es immer noch zur Standard-Devise-Engine geht ... jede Hilfe wäre nett, ich weiß, dass Devise den Ruf hat, schwierig zu konfigurieren zu sein.

Hier ist mein Controller funktions-

def create 
    @user= User.new(configure_sign_up_params) 
respond_to do |format| 
    if @user.save 
     format.html { redirect_to @user, notice: 'User was successfully created.' } 
     format.json { render :show, status: :created, location: @user } 
    else 
     format.html { render :new } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
    end 
end 

hier meine starke Parameter ist funk-

def configure_sign_up_params 
    devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation) } 
end 

Dies sind die Daten Ich bin

let formData = 
     { 
      "username": "test", // document.getElementById('username').value 
      "password": "1234", 
      "password_confirmation": "1234", 
      "email": "[email protected]", 
      "membership": "community" 
     } 
nach JSOn.stringify'ing- Senden

Das ist der Fehler, den ich bei meiner Netzwerkantwort erhalte - 422 mit diesem Body -

{"email":["can't be blank"],"password":["can't be blank"]} 

Vielen Dank im Voraus!

Antwort

0

versuchen, es so

{ 
    user: { 
    "username": "test", 
    "password": "1234", 
    "password_confirmation": "1234", 
    "email": "[email protected]", 
    "membership": "community" 
    } 
} 

zu schicken, da devise etwas ähnliches wie params(:user) tut und es gibt nil, weil es keine Benutzerschlüssel in Parameter ist

Verwandte Themen