2016-07-12 15 views
0

Ich habe ein Formular, um Informationen in einer Datenbank für meine Website zu speichern. Obwohl das Formular keine Anmeldung erfordert, erhalte ich jedes Mal, wenn ich versuche, das Formular zu senden, eine Fehlermeldung "Überprüfung fehlgeschlagen: Kennwort darf nicht leer sein". Ich bin nicht sicher, warum dies geschieht, da es kein Passwortfeld in dem Formular gibt. Hier ist der Code von der Steuerung ist der Fehler von der Linie retten:"Validierungsfehler: Passwort darf nicht leer sein" aber kein Passwortfeld im Formular

def create 
    @newinstructor = Instructor.new 
    @newinstructor_app = InstructorApp.where(first_name: params['instructor']['first_name']).where(last_name: params['instructor']['last_name']) 
    @newinstructor.first_name = params['instructor']['first_name'] 
    @newinstructor.last_name = params['instructor']['last_name'] 
    @newinstructor.story = params['instructor']['story'] 
    @newinstructor.save! 

Hier wird die instructor.rb:

class Instructor < ActiveRecord::Base 
     has_many :activities 

     devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 
     has_many :activities 
     has_one :instructor_app 
    end 
+0

können Sie Ihr Modell veröffentlichen, die instructor.rb-Datei? – Ren

+0

Ich habe gerade die Frage bearbeitet – Zoe

+0

fyi es ist einfacher zu lesen, wenn Sie Ihren ursprünglichen Beitrag mit dem Code bearbeiten – Ren

Antwort

2

sollten Sie in der Lage sein, zu beheben, indem Sie eine der beiden folgenden Ansätze folgenden:

Remove die :validatable Option von Ihrem Instructor, Option ersinnen sollte jetzt:

devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable 

OR

die folgende Methode, um Ihre Instructor hinzufügen

def password_required? 
false 
end 

Lassen Sie mich wissen, ob das hilft

1

Es sieht aus wie Sie wie :database_authenticatable in Ihrem Lehrer Modell Entwickeln Module . Sie können es nicht sehen, aber Devise erwartet standardmäßig ein Passwortfeld. Wenn es für Ihr Instructor-Formular keine Anmeldung gibt, können Sie die Devise-Module einfach löschen. Ersinnen wird in der Regel für das User-Modell verwendet, wenn Sie eine haben, zu authentifizieren, wenn ein Benutzer zunächst anmeldet und/oder Protokolle in