Ich habe eine Spalte 'full_name' in Stäbe Tabelle definiert, die auch nicht null festgelegt ist. Wenn ich den folgenden Test (patient_test.rb) durchführe, bekomme ich die unten angegebene Terminalausgabe. Da ich den Test gegen den Staff Table nicht durchführe verstehe ich nicht warum ich diesen Fehler bekomme.Fehler: ActiveRecord :: StatementInvalid: Mysql2 :: Fehler: Feld 'full_name' hat keinen Standardwert
Kann jemand vorschlagen, warum ich diesen Fehler bekomme, wenn ich nicht einmal den Test auf diesem bestimmten Modell führe.
Schema für Stäbe Tabellen
create_table "staffs", force: :cascade, options: "ENGINE=InnoDB DEFAULT CHARSET=utf8" do |t|
t.string "full_name", null: false
t.string "first_name", null: false
t.string "middle_name"
t.string "last_name", null: false
t.boolean "gender", null: false
t.string "telephone", null: false
t.string "email", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Testdatei (patient_test.rb)
require 'test_helper'
class PatientTest < ActiveSupport::TestCase
test "should not save user without patient" do
patient = Patient.new
assert_not user.save
end
end
Terminal-Ausgang.
rake test
(in /home/user/Rubymine/project1)
Run options: --seed 51365
# Running:
E
Error:
PatientTest#test_should_not_save_user_without_patient:
ActiveRecord::StatementInvalid: Mysql2::Error: Field 'full_name' doesn't have a default value: INSERT INTO `staffs` (`created_at`, `updated_at`, `id`) VALUES ('2017-03-28 08:45:58', '2017-03-28 08:45:58', 980190962)
bin/rails test test/models/patient_test.rb:9
Finished in 0.112169s, 8.9151 runs/s, 0.0000 assertions/s.
1 runs, 0 assertions, 0 failures, 1 errors, 0 skips
Darüber hinaus haben meine staff.rb-Dateien nur die Beziehungen und Bereiche (falls vorhanden) in ihnen.
Staff.rb Datei
class Staff < ApplicationRecord
has_one :user
has_many :time_slots
validates_presence_of :full_name
end
Inhalt bei /fixtures/staffs.yml
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
# This model initially had no columns defined. If you add columns to the
# model remove the '{}' from the fixture names and add the columns immediately
# below each fixture, per the syntax in the comments below
#
one: {}
# column: value
#
two: {}
# column: value
gibt es Vorrichtungen der Test-Framework zu erstellen versucht? Wenn Sie Minitest verwenden sie sind in 'Test/fixtures' – Iceman
@Iceman habe ich geschrieben, die Zusammenarbeit Entsprechende Dateiinhalte für die Mitarbeiter. plaease check :) – TargetBlank