我让这个项目在一个旧项目中工作,但在最近的一个版本中,这可能会发生变化。我目前正在使用Devise 2.0.4。我正在尝试使用
在迁移期间创建新用户 User.create :email => '[password]',
:password => '[password]',
:password_confirmation => '[password]'
但是当我这样做时,它会因以下错误而中止
rake aborted!
An error has occurred, this and all later migrations canceled:
ActionView::Template::Error
Tasks: TOP => db:migrate:reset => db:migrate
(See full trace by running task with --trace)
对此的任何帮助将不胜感激!
或者,我可以使用rails shell创建用户,但为了保持一致性,我希望每次都有一个默认用户开始使用。
答案 0 :(得分:4)
基于prasvin's comment,我发现更好的方法是进入db/seeds.rb
并填充种子元素,例如
User.create(:email => '[email]', :password => '[password]', :password_confirmation => '[password]')
这本身会导致不同的错误消息
rake aborted!
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
我最终通过a different post找到的内容与我在config/environments/development.rb
文件中尚未设置的事实有关
config.action_mailer.default_url_options = { :host => 'localhost:3000'}
这意味着当Devise试图发送确认电子邮件时,它失败了,因为它不知道要告诉他们回来的地址。这就是导致ActionView::Template::Error
的原因。完成所有操作后,它会按预期完美运行。