Rails有效地保存非重复的方法?

时间:2010-06-24 16:02:32

标签: ruby-on-rails activerecord performance

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

1 个答案:

答案 0 :(得分: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