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



我创建了一个带有帐户模型的基本簿记应用程序,这是一个基本的脚手架。我已经实现了设计 gem 以仅显示使用与当前相同user_id创建的帐户,并且它都运行良好。我现在如何创建一组帐户,这些帐户将在新用户注册时设置为默认帐户,而不是他们自己创建所有帐户?

您可以通过使用块调用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

设计在用户被保存后产生块。此方法通常比对回调进行建模更可取,因为您可以更好地控制它在应用程序中的确切执行位置,并且不会减慢测试速度。

设定帐户种子的逻辑也是提取到服务对象中的主要候选项。

最新更新