我有一个页面,用户在创建帐户时会通过简短的注册教程来创建他们的第一个资源。在我的应用中,:酒店属于:用户,和:用户has_one酒店。对于教程页面,在我的控制器中,我有:
@hotel = current_user.build_hotel
哪个有效,除了用户以某种方式找到他回到教程页面上,命令解除了他们之前创建的酒店的关联。换句话说,用户第二次访问页面时使用:
@hotel = current_user.build_hotel
他们第一次创建的酒店中的user_id字段变为零。显然这是一个严重的问题。我可以在那个页面上做一个before_filter,但我不是很高兴为用户提供一种方法,只需访问一个页面就可以搞定所有内容。我应该如何正确使用build命令进行has_one关系?
答案 0 :(得分:2)
您可以在建造之前测试酒店的存在:
@hotel = current_user.hotel || current_user.build_hotel