Обновление 3. Похоже, что это специфично для светильников в .yml.erb - даже если у меня нет шаблонного кода, похоже, что в файле yml.erb ничего не получается загружен. Имеет простой файл .yml. Это, вероятно, не имеет никакого отношения к разработке как таковой.
Примечание: см. Обновление аннотаций 3 для соответствующих изменений
Мне нужно создать пользователей Devise в моем приложении rails. Я замечаю, что очистка базы данных и загрузка светильников загружают все другие приборы, кроме пользователей Devise (Обновление 3), которое находится в файле .yml.erb).
Я видел этот другой поток, но я попробовал все варианты там и по-прежнему не загружал светильники.
# ../fixtures/users.yml.erb
user1:
email: [email protected]
name: user1
encrypted_password: <%= Devise.bcrypt(User, 'passw0rd!') %>
# also tried encrypted_password: User.new(password_salt: '$2a$10$PoBe1MvkoGJsjMVTEjKqge').send(:password_digest, 'somepassword')
admin: true
И с консоли:
Чтобы очистить тест db:
$ bundle exec rake db:schema:load RAILS_ENV=test
Чтобы загрузить приборы в тест db:
$ bundle exec rake db:fixtures:load RAILS_ENV=test
Запустите консоль rails в тесте (пользователей не найдено, но загружаются другие модели, например App):
$ rails c test
Loading test environment (Rails 4.1.5)
irb(main):001:0> User.first
User Load (0.1ms) SELECT "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT 1
=> nil
irb(main):002:0> App.first
App Load (0.1ms) SELECT "apps".* FROM "apps" ORDER BY "apps"."id" ASC LIMIT 1
=> #<App id: 953336129,...>
Обновление 1: также пытались передать в зашифрованном пароле, сгенерированном с консоли, все же записи пользователя не найдены:
admin:
email: [email protected]
name: user1
encrypted_password: $2a$04$DR0.2yfWwD8AZlyeXx0gEuk2Qh.cNLF4cir0ZUB1iW7hwQhK/IfcC
admin: true
Обновление 2. Оно работает, когда я переименую файл fixtures на users.yml. Кажется, что переименование в user.yml.erb является виновником. BTW, такое же поведение наблюдается (то есть, оно работает с .yml, но не с yml.erb) на консоли и от rake test