假设Profile是它自己的模型,而User has_one Profile。创建用户时,他/她应自动获得默认的空配置文件。所以我假设我不需要为配置文件控制器创建新的或创建操作,只需要更新,编辑和显示。这个假设是否正确?如果是这样,我如何自动生成空配置文件?在我的用户创建方法?
答案 0 :(得分:0)
是的,您可以在用户模型中处理创建。定义has_one关联自动包括用于构建和创建的方法(在这种情况下,它将是User#create_profile和User#build_profile)。一个好的做法是设置一个调用build_profile的before_create回调,这样如果配置文件没有保存就不会获得孤立的用户记录。
就控制器而言,我通常甚至不想为用户配置文件制作单独的控制器。由于每个用户记录总会有一个配置文件记录,因此您可以将配置文件属性视为在逻辑上等同于用户属性(它们主要放在组织中,它们放在自己的表中)。这样你就可以将配置文件添加到通常的用户CRUD操作中。如果您真的喜欢单独的profiles_controller的想法,请考虑将其设置为嵌套资源,因为无论何时处理配置文件,您都将始终拥有user_id。