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