2017-06-29 1 views
0

Ich habe eine Ruby on Rails JSON API mit Knock für JWT Authentification.Ruby on Rails API - Erstellung von Datenbankobjekten gibt nur Objekte mit leeren Werten zurück

Das Modell Benutzer sieht wie folgt aus:

class User < ApplicationRecord 

attr_accessor :email, :password, :password_digest 
has_secure_password 

end 

Und die Migration:

class CreateUsers < ActiveRecord::Migration[5.1] 
    def change 
     create_table :users do |t| 
      t.string :email 
      t.string :password 
      t.string :password_digest 

      t.timestamps 
     end 
    end 
end 

Es mit rüsteten CRUD-Methoden auch ein Benutzer-Controller ist. So generieren Sie JWT, verwende ich die folgenden Controller, der von der Knock geerbt :: AuthTokenController:

class UserTokenController < Knock::AuthTokenController 
end 

Allerdings, wenn ich erzeugen einen Benutzer mit der Konsole so ...

User.create(:email => '[email protected]', :password => 'test', :password_digest => 'test') 

. .. ich ein Datenbankobjekt mit leeren Werten erhalten: Console Output

+0

try 'User.create (E-Mail: ...)' um den Fehler zu erhöhen –

+0

Nein, die einen Fehler nicht erhöhen. Es ist das gleiche wie auf dem Bild, das Objekt wird mit leeren Werten erstellt :( – mfaorlkzus

+0

Wenn Sie 'ActiveRecord' verwenden, entfernen Sie 'attr_accessor'. Sie brauchen es nicht und es kann diese Art von Problemen verursachen –

Antwort

1

Sie brauchen nicht attr_accessor da Sie ActiveRecord verwenden.

diese Zeile entfernen

attr_accessor :email, :password, :password_digest