2011-08-08 26 views
0

我有我的应用程序一个Post模型,belongs_to一个User模型,以及一个Location模型。 UserLocation模型都使用has_manyPost的关系。Rails的要求:大专职位与用户和位置

现在,在我的Post控制器的创建操作中,我想自动将Post与当前登录的用户(通过Devise为current_user提供给我)关联。

而且,它应该与关联预先存在Location如果一个具有相同address场(他通过形式进入)是否存在,或者创建一个新的,如果不将其与关联。

我的Post模型有一个user_id字段以及location_id字段为此目的。

当用户创建新帖子时,如何在创建操作中自动完成两个关联?

+0

问题是? – Dogbert

+0

@Dogbert更新。对不起,如果不明确。 –

+0

这是一个可以通过阅读文档很容易回答的问题。尝试http://guides.rubyonrails.org/association_basics.html初学者。由于这一点,你不可能得到很好的答案,因为看起来你没有付出任何努力来自己解决。 – jergason

回答

1

您将需要使用2个语句。

@post = current_user.posts.build(params[:post]) 
@post.location_id = params[:location_id] # change this to whatever you're passing. 
@post.save 
+0

哦,我不知道设置'location_id'字段会自动将它们关联在一起。谢谢。 –

+0

如果您的Post模型与位置(Post有一个位置)有关联,则最好先查找位置:@ post.location = Location.find(params [:location_id))。 –