2017-06-04 4 views
0

Ich fange gerade an, mit Rails (mit Rspec und Shoulda Matchers) zu spielen, um einen Demo-Blog zu erstellen.Versuchen zu verstehen, warum validates_presence_of test fehlschlägt

Ich habe gerade erst angefangen und mein erster Test scheitert, aber ich kann nicht verstehen warum.

Ich glaube, ich habe alles richtig eingerichtet, aber wenn ich versuche, zu bestätigen, dass ein Titel auf meinem Artikel Modell vorhanden ist, aber es gibt einen Fehler

Shoulda::Matchers::ActiveModel::AllowValueMatcher::AttributeDoesNotExistError: 
    The matcher attempted to set :title on the Article to nil, but that 
    attribute does not exist. 

Mein Modell sieht wie folgt aus ...

class Article < ApplicationRecord 
    # attr_accessor :title 
    validates_presence_of :title 
end 

und mein Test ...

require 'rails_helper' 

RSpec.describe Article do 
    it { should validate_presence_of :title } 
end 

Wenn ich Kommentar- der attr_accessor aus dann den Test vergeht, aber ich verstehe, dass es bei Rails nicht erforderlich ist.

Was mache ich falsch?

Antwort

0

Die attr_accessor ist nicht erforderlich, solange Ihre articles Datenbanktabelle eine title Spalte hat.

Sie können das in db/schema.rb überprüfen.

+0

Perfect danke @ Hugh-Middleton, ich hatte meine Migrationsdatei aktualisiert, aber nicht über das Schema erkannt. War mir nicht sicher, woher es die Attribute gelesen hatte. – bencarter78

+0

Keine Sorgen. Ja, solange Sie Ihre Migrationen ausführen, wird 'schema.rb' automatisch aktualisiert. –

Verwandte Themen