【发布时间】:2014-12-26 00:07:19
【问题描述】:
更新 3:这似乎是特定于 .yml.erb 中的固定装置 - 即使我没有模板化代码,似乎 yml.erb 文件中的固定装置也没有加载。拥有一个普通的 .yml 文件是可行的。这可能与设计本身无关。
注意:有关更改,请参阅更新 3 注释
我需要在我的 rails 应用程序中生成 Devise 用户。我注意到清除数据库和加载夹具会加载所有其他夹具,但 Devise 用户除外(Update 3:位于 .yml.erb 文件中)。
我见过this other thread,但我尝试了那里的所有选项,但似乎仍然没有加载固定装置。
# ../fixtures/users.yml.erb
user1:
email: user1@mysite.com
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
从控制台:
清除测试数据库:
$ bundle exec rake db:schema:load RAILS_ENV=test
将夹具加载到测试数据库中:
$ 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: user1@mysite.com
name: user1
encrypted_password: $2a$04$DR0.2yfWwD8AZlyeXx0gEuk2Qh.cNLF4cir0ZUB1iW7hwQhK/IfcC
admin: true
更新 2:当我将固件文件重命名为 users.yml 时,它可以工作。重命名为 users.yml.erb 似乎是罪魁祸首。顺便说一句,在控制台和rake test
【问题讨论】:
标签: ruby-on-rails erb fixtures