2010-06-24 17 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

相關問題