0
我有一個我想要保存到數據庫的類型,比如電子郵件地址,我想以最有效的方式保存它們。我還希望將帖子與電子郵件地址相關聯,所以如果存在,我想將帖子分配到該電子郵件地址。我應該首先進行搜索,然後根據結果進行搜索,還是有更高效的方法?對於前者,如果它不存在,我只是希望它插入,我不想在搜索後插入它;這將需要2個電話,其中1會做。Rails有效的方式來保存非重複?
我有一個我想要保存到數據庫的類型,比如電子郵件地址,我想以最有效的方式保存它們。我還希望將帖子與電子郵件地址相關聯,所以如果存在,我想將帖子分配到該電子郵件地址。我應該首先進行搜索,然後根據結果進行搜索,還是有更高效的方法?對於前者,如果它不存在,我只是希望它插入,我不想在搜索後插入它;這將需要2個電話,其中1會做。Rails有效的方式來保存非重複?
我相信你應該使用類似find_or_create
的東西。
請問post
和email
是分開的型號和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
很好,有許多類型的職位和電子郵件必須通過一箇中間表is_postable給他們一個多態的關係。 – tesserakt 2010-06-24 17:17:27
我編輯了我的答案:]重要的部分是'find_or_initialize_by'。 – 2010-06-24 17:33:27