0

我有一个页面,当用户创建帐户以创建他们的第一个资源时,他们会通过一个简短的注册教程。在我的应用程序中,:hotel 属于 :user,并且 :user has_one 酒店。对于教程页面,在我的控制器中,我有:

    @hotel = current_user.build_hotel

哪个有效,除了用户以某种方式在教程页面上找到他,该命令取消了他们先前创建的酒店的关联。换句话说,用户第二次访问该页面时:

 @hotel = current_user.build_hotel

他们第一次创建的酒店中的 user_id 字段变为 nil。显然这是一个严重的问题。我可以在那个页面上做一个 before_filter,但我不太高兴有一种方法让用户只需访问一个页面就可以搞砸一切。我应该如何正确使用构建命令来建立 has_one 关系?

4

1 回答 1

2

您可以在建造酒店之前测试酒店的存在:

 @hotel = current_user.hotel || current_user.build_hotel
于 2012-10-02T18:14:00.247 回答