4

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

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

我错过了什么吗?

编辑:我也尝试添加密码确认。依然没有。

4

3 回答 3

2

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

于 2010-02-25T04:21:31.093 回答
1

确认密码?

于 2010-02-25T03:56:03.170 回答
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

3dont_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
         )
于 2010-02-25T10:10:57.603 回答