Когда я запустил это: rails test
, то все мои (10) тесты терпят неудачу с той же ошибкой (Уникальное ограничение не выполнено). Вот сообщения об ошибке:Rails - все тесты сбой - «... ConstraintException: UNIQUE constraint failed: admins.email ...»
E
Error:
WelcomeControllerTest#test_the_truth:
ActiveRecord::RecordNotUnique: SQLite3::ConstraintException: UNIQUE
constraint failed: admins.email: INSERT INTO "admins" ("created_at",
"updated_at", "id") VALUES ('2017-02-20 16:22:33.516784', '2017-02-20
16:22:33.516784', 298486374)
bin/rails test test/controllers/welcome_controller_test.rb:4
Один из тестов это одна:
test "the truth" do
assert true
end
Просматривая вокруг, я увидел, что это, вероятно, было что-то около светильников. В /test/fixtures/admin.yml тогда это было:
# 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
Если я закомментируйте one: {}
и two: {}
, то он работает. Я понятия не имею, почему это так? Может ли кто-нибудь объяснить это, пожалуйста?
Почему в скобках нет ответа? Я пробовал то, что вы написали, и это работает. Но почему это не 'one: {...}', а просто 'one: ...'? Это не работает, если я поставлю скобки. : -/ – Zeth
В верхней части комментария говорится: «Если вы добавляете столбцы в модель, удалите« {} »из прибора, так что {} предназначен только для тех случаев, когда вам вообще не нужны значения. Я считаю, что это потому, что клавишам YAML требуется значение или подразделение, у вас не может быть ключа без значения, поэтому они используют {} для обозначения того, что никакие значения не добавляются. – RichardAE