【问题标题】:Rails Load Data into Application every time a New User is Created每次创建新用户时,Rails 都会将数据加载到应用程序中
【发布时间】:2010-03-28 19:50:22
【问题描述】:
我正在尝试找出“正确”的方法。
在我的应用程序中,每次创建新用户时,我都希望将特定数据加载到关联表中。关联表是不同的预设列表。所以一个用户有很多列表,这些列表有很多项目。我希望在创建用户时加载其中一些项目。
我真的不知道该怎么做,但我猜是这样的:
创建用户
after_create:创建列表(列表名称需要已经存在的数据)
after_create List 然后用这些 List 的现有数据填充 Items 表。
我应该为此使用种子数据吗?这对生产来说可以吗?如果可以,我将如何去做。
非常感谢任何指导或其他建议。
【问题讨论】:
标签:
ruby-on-rails
seed
after-create
【解决方案1】:
Seed 真正用于在应用程序的第一次部署时插入数据。
如果您要创建附加到特定事件的记录,那么您的方法可能是最好的方法。如果有很多数据,您可以将其外部化为 YAML 或类似的东西,但 after_create 在几种情况下对我来说都很好。
class User < ActiveRecord
def after_create
List.create
end
end
有时效果很好的一个实用技巧是在系统中拥有一个规范用户 - 加载此数据并为您当前的用户克隆它。
【解决方案2】:
种子的使用实际上是为了插入应用程序所需的所有数据,例如列表。
对我来说,这是个好方法。我没有指针。例如,在 redmine 中有一个引导插入。