我有一个页面,当用户创建帐户以创建他们的第一个资源时,他们会通过一个简短的注册教程。在我的应用程序中,:hotel 属于 :user,并且 :user has_one 酒店。对于教程页面,在我的控制器中,我有:
@hotel = current_user.build_hotel
哪个有效,除了用户以某种方式在教程页面上找到他,该命令取消了他们先前创建的酒店的关联。换句话说,用户第二次访问该页面时:
@hotel = current_user.build_hotel
他们第一次创建的酒店中的 user_id 字段变为 nil。显然这是一个严重的问题。我可以在那个页面上做一个 before_filter,但我不太高兴有一种方法让用户只需访问一个页面就可以搞砸一切。我应该如何正确使用构建命令来建立 has_one 关系?