大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如何在rails(4.1.5)中为yml.erb创建装置(对于Devise用户)?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
注意:有关相关更改,请参阅更新3注释@H_801_3@
我需要在我的rails应用程序中生成Devise用户.我注意到清除数据库并加载灯具加载所有其他灯具,除了Devise用户(更新3:位于.yml.erb文件中).@H_801_3@
我已经看到了this other thread,但我尝试了所有的选项,仍然似乎没有加载灯具.@H_801_3@
# ../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
并从控制台:@H_801_3@
要清除测试db:@H_801_3@
$bundle exec rake db:scheR_55_11845@a:load RAILS_ENV=test
要将灯具加载到test db中:@H_801_3@
$bundle exec rake db:fixtures:load RAILS_ENV=test
在测试中运行rails控制台(没有找到用户,但正在加载其他模型工具,如App);@H_801_3@
$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:也尝试传递从控制台生成的加密密码,仍然没有找到用户记录:@H_801_3@
admin: email: user1@mysite.com name: user1 encrypted_password: $2a$04$DR0.2yfWwD8AZlyeXx0gEuk2Qh.cNLF4cir0ZUB1iW7hwQhK/IfcC admin: true
更新2:当我将fixtures文件重命名为users.yml时,它可以正常工作.重命名为users.yml.erb似乎是罪魁祸首. BTW,在控制台和rake测试中,看到同样的行为(即它与.yml,但不适用于yml.erb)@H_801_3@
tom: first_name: Tom last_name: Test email: test@example.org password: 123greeTings encrypted_password: <%= User.new.send(:password_digest,'123greeTings') %>
如果仍然失败,请检查log / test.log文件是否有错误,并检查您在User模型中设置的缺少的必填字段或其他验证规则.@H_801_3@
更新:原来,作者自己发现了这个问题 – 使用.yml.erb文件扩展名而不是.yml,这使得rails绕过了fixtures文件. ERB在yml灯具中工作,因为rails在解析之前通过ERB运行灯具文件.@H_801_3@
以上是大佬教程为你收集整理的ruby-on-rails – 如何在rails(4.1.5)中为yml.erb创建装置(对于Devise用户)?全部内容,希望文章能够帮你解决ruby-on-rails – 如何在rails(4.1.5)中为yml.erb创建装置(对于Devise用户)?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。