问题描述
|
我正在使用Rails 3创建一个SAAS应用程序。当用户创建一个新帐户时,数据库中需要填充大量数据。一些数据将特定于新创建的帐户。我不一定要通过控制器的“注册”动作中的模型来完成所有这些操作。最好的方法是什么?
解决方法
从事物的声音来看,您应该在User模型中使用回调。最可能的是:a0ѭ或
after_create
(取决于您的确切需求)。然后,您可以让用户模型而不是您的控制器来处理帐户特定数据的创建,从而遵循“胖模型,瘦控制器”的理想。
class User < ActiveRecord::Base
after_create :setup_account_data
private
def setup_account_data
# create other data as required
end
end
确实非常简单,在创建用户模型后-将调用setup_account_data
方法。其他可用回调的列表在这里。
,我想到了几种方法。
简单的红宝石。这类似于运行rake db:seed时执行的操作-执行ruby脚本。
固定装置。如果将数据库转储到灯具[http://snippets.dzone.com/posts/show/4468],则可以修改灯具,以便需要定制的数据在erb块中完成。这是测试夹具中经常使用的相同技术。