Могу ли я удалить объект, не удаляя ни одного из его атрибутов? - PullRequest
0 голосов
/ 09 февраля 2012

например.

post = Post.first

post.image_path #(this is a image path like http://localhost:3000/uploads/image/sd54asdf.jpg)

, если я делаю:

post.destroy

Этим я уничтожаю все атрибуты объекта записи, включая изображение.

Могу ли я удалитьобъект без удаления изображения?

Может кто-нибудь сказать мне, если это возможно?

С помощью этого метода я проверяю, является ли последний объект, на который ссылается изображение.

def validates_image_dependents
  post = self.find(params[:id])
   i=0
  for this_post in Post.all
   if this_post.posted_filename == post.post_filename
    i+=1
   end
  end
 return i > 1
end

1 Ответ

1 голос
/ 09 февраля 2012

Вызов уничтожить запись приведет к удалению всех данных, относящихся к этой записи. Я думаю, что у вас есть 3 варианта:

  1. Создайте связанный объект, который содержит информацию об изображении, и не настраивайте Rails для удаления связанных записей при удалении сообщения
  2. Я подозреваю, что это больше похоже на то, чего вы пытаетесь достичь - вместо того, чтобы уничтожать объекты, на которые вам все еще может понадобиться ссылка, обновите модель Post, чтобы получить логическое значение, которое отслеживает, «удалена» ли запись, а затем используйте это для извлекать только активные сообщения. Это мягкое удаление и очень часто, когда сложные ассоциации затрудняют полное удаление записей
  3. Настройте действие уничтожения, чтобы создать какую-то архивную запись, которую вы можете использовать для доступа к атрибутам, которые вам все еще необходимы

Мне нравится вариант 2, но он зависит от того, чего именно вы пытаетесь достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...