2012-10-02 21 views
0

我有一个页面,当用户创建他们的账户以创建他们的第一个资源时,他们通过一个简短的注册教程。在我的应用程序中,:hotel属于:user,并且:user has_one hotel。对于本教程页面,在我的控制,我有:Rails has_one关系在控制器中安全的resource.build_resource

@hotel = current_user.build_hotel 

其中一期工程,除了它用户莫名其妙地发现他回该命令解离他们先前创建的酒店的教程页面上。换句话说,第二次的用户访问与页面:

@hotel = current_user.build_hotel 

酒店他们创造了第一次USER_ID栏变为零。显然这是一个严重的问题。我可以在该页面上做一个before_filter,但我并不是很高兴有一种方式让用户只需访问一个页面即可搞定所有内容。我应该如何正确使用has_one关系的构建命令?

+0

我an't看到这个问题,我想你已经包含用户ID的隐藏字段。这个可以直接用'current_user'设置。 – apneadiving

回答

2

可以测试一个酒店的存在,构建之前:

@hotel = current_user.hotel || current_user.build_hotel 
+0

这应该工作得很好。 –