diff --git a/app/models/project.rb b/app/models/project.rb index 847c536da..c68e73369 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1217,18 +1217,30 @@ class Project < ActiveRecord::Base def create_project_ealasticsearch_index - if self.is_public == 1 + if self.is_public self.__elasticsearch__.index_document end end def update_project_ealasticsearch_index - if self.is_public == 1 - self.__elasticsearch__.update_document + if self.is_public #如果是初次更新成为公开的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性 + begin + self.__elasticsearch__.update_document + rescue => e + self.__elasticsearch__.index_document + end + else #如果是更新成为私有的,那么索引就要被删除 + begin + self.__elasticsearch__.delete_document + rescue => e + + end end end def delete_project_ealasticsearch_index - if self.is_public == 1 - self.__elasticsearch__.delete_document + begin + self.__elasticsearch__.delete_document + rescue => e + end end