Update 3: Es scheint, dass dies für Fixtures in einer .yml.erb spezifisch ist - auch wenn ich keinen Template-Code habe, scheint es, dass Fixtures in einer Yml.erb-Datei nicht geladen werden. Eine einfache .yml-Datei funktioniert. Dies hat wahrscheinlich nichts mit der Entwicklung an sich zu tun.Wie erstellt man Fixtures (für einen Devise-Benutzer) als yml.erb in Rails (4.1.5)?
Hinweis: siehe Update 3 Anmerkungen für relevante Änderungen
Ich brauche Devise Benutzer in meiner Rails-Anwendung zu generieren. Ich merke, dass das Löschen der Datenbank und das Laden der Fixtures alle anderen Fixtures lädt, außer den Devise-Benutzern (Update 3: welches in einer .yml.erb-Datei ist).
Ich habe this other thread gesehen, aber ich habe alle Optionen dort versucht und scheint immer noch nicht die Geräte zu laden.
# ../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
Und von der Konsole:
den Test db zu löschen:
$ bundle exec rake db:schema:load RAILS_ENV=test
Um die Geräte in dem Test db zu laden:
$ bundle exec rake db:fixtures:load RAILS_ENV=test
Laufschienen Konsole in Test (keine Benutzer gefunden, aber andere Modell Fixtures, wie App, werden geladen):
$ 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,...>
Update 1: versuchten auch in verschlüsseltem Passwort von der Konsole erzeugt vorbei, noch keine Benutzerdatensätze gefunden:
admin:
email: [email protected]
name: user1
encrypted_password: $2a$04$DR0.2yfWwD8AZlyeXx0gEuk2Qh.cNLF4cir0ZUB1iW7hwQhK/IfcC
admin: true
Update 2: Es funktioniert, wenn ich Fixtures Benutzer-Datei umbenannt. Yml. Umbenennung in users.yml.erb scheint der Täter zu sein. BTW, das gleiche Verhalten wird gesehen (das heißt, es funktioniert mit .yml, aber nicht mit yml.erb) auf der Konsole und von rake test
Danke, ich aktualisiert die Frage und Details auf der Grundlage weiterer Untersuchungen - scheint wie Dies hängt damit zusammen, dass .yml.erb-Fixture-Dateien nicht geladen werden, nicht speziell für Geräte. Sehen Sie sich meine Updates im Titel und in den Details der Frage an. – Anand
Ja, Sie benötigen nicht die Erweiterung .erb, erb funktioniert in Fixtures, auch wenn sie nur .yml-Dateien sind, weil Schienen sie über erb vor dem Laden verarbeitet. – kroky
Ja, das ist es! Ich bin neu bei Fixtures und nehme an, dass es eine Erweiterung von erb benötigt, genau wie View-Dateien, die Erb-Code enthalten. Vielen Dank! Bitte aktualisieren Sie die Antwort mit diesem, und ich gebe Ihnen all das gute Karma, das ich kann :-) – Anand