2011-03-26 70 views
0

假设配置文件是它自己的模型,并且用户has_one配置文件。当创建用户时,他应该自动给出一个默认的空白配置文件。所以我假设我不需要为配置文件控制器创建新的或创建操作,并且只需要更新,编辑和显示。这个假设是否正确?如果是这样,我该如何自动生成一个空的配置文件?在我的用户创建方法?你需要新的和创建配置文件的方法吗?

回答

0

是的,你可以在用户模型中处理创建。定义has_one关联会自动包含用于构建和创建的方法(在这种情况下,它将是User#create_profile和User#build_profile)。一个好的做法是设置一个调用build_profile的before_create回调函数,这样如果配置文件没有保存,就不会得到孤立的用户记录。

就控制器而言,我通常甚至不想为用户配置文件制作单独的控制器。由于每个用户记录总是会有一个配置文件记录,因此您可以将配置文件属性视为在逻辑上等同于用户属性(它们主要是放在组织自己的表中)。这样,您可以将简介内容添加到通常的用户CRUD操作中。如果您真的喜欢单独的profiles_controller的想法,可以考虑将其设置为嵌套资源,因为无论何时处理配置文件,您都将拥有user_id。

+0

谢谢,请你提供一些例子,特别是你提到的回调? – 2011-03-26 23:25:41

+0

只是把它放在user.rb中:'before_create:build_profile' – 2011-03-27 01:42:02

+0

是的,我的意思是'build_profile'方法应该是什么样子? – 2011-03-27 01:44:21

相关问题