【问题标题】:Seeding a restful_authentication user in seeds.rb在 seed.rb 中播种一个 RESTful 身份验证用户
【发布时间】:2011-01-20 20:20:59
【问题描述】:

我很确定我了解种子.rb 的播种工作原理,但我似乎无法使用它将 restful_authentication 用户对象粘贴到数据库中。

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => 'admin@example.com',
            :password => '123123')

我错过了什么吗?

编辑:我也尝试添加密码确认。还是什么都没有。

【问题讨论】:

  • 您遇到的错误是什么?您是否使用--trace 选项运行rake?即rake db:seed --trace.

标签: ruby-on-rails restful-authentication seed


【解决方案1】:

您是否打开了通知?如果是这样,User 模型正在尝试发送 电子邮件通知。如果您还没有配置您的电子邮件服务器,创建操作 会失败。

我必须执行以下操作才能解决此问题。

1 修改用户模型

添加一个名为dont_notify的虚拟属性。

class User < ActiveRecord::Base
   # add a attribute
   attr_accessor dont_notify
end

2 更改观察者代码以检测属性。

class UserObserver < ActiveRecord::Observer

  def after_create(user)
    return if user.dont_notify? #notice this line 
    UserMailer.deliver_signup_notification(user)
  end

  def after_save(user)
    return if user.dont_notify? #notice this line
    UserMailer.deliver_activation(user) if user.recently_activated?
  end
end

3 在播种期间设置dont_notify 标志

在你seed.rb 中设置标志。

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => 'admin@example.com',
            :password => '123123',
            :password_confirmation => '123123',
            :dont_notify => true
         )

【讨论】:

    【解决方案2】:

    尝试User.create!() 使用相同的参数)。这将在控制台中显示任何验证错误。

    【讨论】:

      【解决方案3】:

      密码确认?

      【讨论】:

      • 您可能只想检查验证和/或尝试在控制台中使用相同的属性创建它,然后检查错误
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      • 2011-11-28
      • 2015-07-09
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      相关资源
      最近更新 更多