【问题标题】:Devise:: Cannot create user through rake db:seed (failure confirmation_instructions)设计:: 无法通过 rake db:seed 创建用户(失败确认指令)
【发布时间】:2011-10-07 13:53:39
【问题描述】:

用户模型有一个功能

def self.createadmin(
User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
end

在 rake db:seed 中,我必须调用 User.createadmin

但是,这失败了

ActionView::Template::Error: ActionView::Template::Error
    from /Users/bever/Projects/tr/app/views/devise/mailer/confirmation_instructions.html.erb:3:in `_app_views_devise_mailer_confirmation_instructions_html_erb___1974818942364630283_2154906860'

然后我在createadmin里改了代码

begin
User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
rescue => e
User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')
end    

有效!任何线索为什么会发生这种情况?

【问题讨论】:

  • 您可以发布您的“/app/views/devise/mailer/confirmation_instructions.html.erb”标记吗?
  • 你确定你的问题中没有关于方法def self.createadmin(的错字吗?

标签: devise ruby-on-rails-3.1


【解决方案1】:

您是否尝试过从 db/seeds.rb 文件而不是模型中播种?当您尝试在模型上执行此操作时,设计可能正在尝试发送确认邮件。

你应该像这样在种子.rb 文件上创建你的管理员用户

User.create(:email => "abc@gmail.com", :password => "123456e", :password_confirmation => "123456e", :terms_of_service => '1')

请记住,如果您使用的是可确认的设计模块,则应将此字段添加到查询中。

:confirmed_at => Time.now

也许您应该添加确认令牌和其他有用的字段,以通过您的 rails 应用而不是控制台来管理您的管理员帐户。

PD:如果您发布更多显示的错误,也许视图中的行我可以帮助您更多。

问候

【讨论】:

    猜你喜欢
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-08
    • 2015-10-29
    相关资源
    最近更新 更多