如何在使用Devise gem时在rails app中创建默认数据

时间:2018-05-05 12:14:15

标签: ruby-on-rails ruby rubygems

我使用帐户模型创建了一个基本的簿记应用程序,这是一个基本的脚手架。我已经实现了设计gem,只显示使用与当前相同的user_id创建的帐户,并且它们完全正常工作。我现在如何创建一组帐户,这些帐户在注册时会被设置为新用户的默认帐户,而不是自己创建所有帐户?

1 个答案:

答案 0 :(得分:1)

您可以通过使用块调用super来点击Devise控制器:

# config/routes.rb
devise_for :user, controllers: {
  registrations: 'my_registrations'
}

# app/controllers/my_registrations_controller.rb
class MyRegistrationsController < Devise::RegistrationsController
  def create
    super do |user|
      5.times { user.accounts.create }
    end
  end
end
保存用户后,

设计会生成块。这种方法通常比模型回调更好,因为您可以更好地控制应用程序的确切位置,并且不会减慢测试速度。

种子帐户的逻辑也是提取到service object的主要候选者。