Ruby on rails 用户创建时Rails中的种子生产数据
我在seeds.rb中创建了一组数据,用于开发目的。现在我意识到,当一个新用户在我的网站上注册时,我基本上需要在默认情况下创建相同的数据,这样他就不会有一个空帐户。最好的方法是什么Ruby on rails 用户创建时Rails中的种子生产数据,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我在seeds.rb中创建了一组数据,用于开发目的。现在我意识到,当一个新用户在我的网站上注册时,我基本上需要在默认情况下创建相同的数据,这样他就不会有一个空帐户。最好的方法是什么 在myseeds.rb中,我创建了一个测试用户和一组对象。我是否可以将用户id传递给Rails.application.load\u seed?或者有更好的方法吗?您不应该在用户创建时调用seeds.rb。相反,seeds.rb应该使用生产应用程序使用的相同方法创建初始的用户相关模型 我至少可以看到两种解决方案: 使
在myseeds.rb中,我创建了一个测试用户和一组对象。我是否可以将用户id传递给
Rails.application.load\u seed
?或者有更好的方法吗?您不应该在用户创建时调用seeds.rb
。相反,seeds.rb
应该使用生产应用程序使用的相同方法创建初始的用户相关模型
我至少可以看到两种解决方案:
使用User
上的after\u create
回调创建相关对象。例如:
class User < ActiveRecord::Base
after_create :generate_api_key
private
def generate_api_key
ApiKey.create!(user: self)
end
end
在这种情况下,seeds.rb
应该使用该服务来创建用户。而不是调用User#create
您应该调用UserRegistrationService.new.call(登录名:'test1')
您不应该在用户创建时调用seeds.rb
。相反,seeds.rb
应该使用生产应用程序使用的相同方法创建初始的用户相关模型
我至少可以看到两种解决方案:
使用User
上的after\u create
回调创建相关对象。例如:
class User < ActiveRecord::Base
after_create :generate_api_key
private
def generate_api_key
ApiKey.create!(user: self)
end
end
在这种情况下,seeds.rb
应该使用该服务来创建用户。而不是调用User#create
您应该调用UserRegistrationService.new.call(登录名:'test1')