在seeds.rb 中播种restful_authentication 用户

发布于 2024-08-23 01:44:47 字数 469 浏览 5 评论 0原文

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

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => '[email protected]',
            :password => '123123')

我错过了什么吗?

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

I'm pretty sure I understand how seeding work with respect to seeds.rb, but I can't seem to use it to stick a restful_authentication User object into the database.

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => '[email protected]',
            :password => '123123')

Am I missing something?

Edit: I also tried adding the password confirmation. Still nothing.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

俯瞰星空 2024-08-30 01:44:47

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

Try User.create!() using the same parameters). This will show you any validation errors in the console.

无名指的心愿 2024-08-30 01:44:47

密码确认?

Password confirmation?

眼藏柔 2024-08-30 01:44:47

你开启通知了吗?如果是这样,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 => '[email protected]',
            :password => '123123',
            :password_confirmation => '123123',
            :dont_notify => true
         )

Have you turned the notification on? If so, the User model is trying to send
the email notification. If you haven't configured your email server, the create operation
will fail.

I had to do the following to work around the problem.

1 Modify the User model

Add a virtual attribute called dont_notify.

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

2 Change the Observer code to detect the attribute.

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 Set the dont_notify flag during seeding

In you seed.rb set the flag.

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => '[email protected]',
            :password => '123123',
            :password_confirmation => '123123',
            :dont_notify => true
         )
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文