我有一个我要保存到数据库的类型,比如电子邮件地址,我希望以最有效的方式保存它们。我还想将帖子与电子邮件地址相关联,所以如果它存在,我想将帖子分配给该电子邮件地址。我应该先进行搜索,然后根据结果进行搜索,还是有更有效的方法?对于ex,如果它不存在,我只想要它插入,我不想在搜索后插入它;这需要2个电话,其中1个会做。
答案 0 :(得分:3)
我相信你应该使用像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