2010-06-24 33 views
0

我有一个我想要保存到数据库的类型,比如电子邮件地址,我想以最有效的方式保存它们。我还希望将帖子与电子邮件地址相关联,所以如果存在,我想将帖子分配到该电子邮件地址。我应该首先进行搜索,然后根据结果进行搜索,还是有更高效的方法?对于前者,如果它不存在,我只是希望它插入,我不想在搜索后插入它;这将需要2个电话,其中1会做。Rails有效的方式来保存非重复?

回答

3

我相信你应该使用类似find_or_create的东西。

请问postemail是分开的型号和post has_one email

编辑

在创建后,你应该这样做

# posts controller 
@email = Email.find_or_initialize_by_address(params[:email]) 
@post.email = @email #or whatever you do to associate them 
+0

很好,有许多类型的职位和电子邮件必须通过一个中间表is_postable给他们一个多态的关系。 – tesserakt 2010-06-24 17:17:27

+0

我编辑了我的答案:]重要的部分是'find_or_initialize_by'。 – 2010-06-24 17:33:27

相关问题