每次创建新用户时,Rails都会将数据加载到应用程序中

时间:2010-03-28 19:50:22

标签: ruby-on-rails seed after-create

我试图找出“正确”的方法来做到这一点。

在我的应用程序中,每次创建新用户时,我都希望将特定数据加载到关联的表中。关联表是不同的预设列表。因此,用户有许多列表,这些列表包含许多项目。我想在创建用户时加载其中一些项目。

我真的不知道如何去做这件事,但我猜是这样的: 创建用户 after_create:创建列表(需要列表名称的现有数据) after_create List然后使用这些列表的现有数据填充Items表。

我应该使用种子数据吗?这对于生产是否正常,如果是这样,我将如何做到这一点。

非常感谢任何指导或其他建议。

2 个答案:

答案 0 :(得分:1)

Seed实际上是在第一次部署应用程序时插入数据。

如果要创建附加到特定事件的记录,那么您的方法可能是最好的方法。如果有很多数据,你可以将它外部化为YAML或其他类似的东西,但after_create在几种情况下对我来说很好。

class User < ActiveRecord

  def after_create
     List.create
  end
end

有时效果很好的一个方便的技巧是在系统中拥有一个规范用户 - 加载这些数据并为当前用户克隆它。

答案 1 :(得分:0)

使用种子实际上是为了插入您的应用程序所需的所有数据,如列表。

对我来说这是好方法。我没有指针。例如,在redmine中有一个bootstrap插入。