Как изменить, а затем немедленно сохранить экземпляр модели Rails из обратного вызова проверки? - PullRequest
0 голосов
/ 20 декабря 2011

Я использую mongoid и хочу переносить свои документы по одному.Чтобы сделать это, я попытался выполнить миграцию в обратном вызове after_initialize, но я не могу, кажется, save() оттуда без запуска той же проверки и бесконечной рекурсии.Есть ли лучший обратный вызов, чтобы использовать, или другой вопрос, на который я должен обратить внимание?

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Я бы использовал before_save, а затем прошёл бы всю коллекцию и снова сохранил бы их вне обратного вызова, вместо того, чтобы просто инициализировать их, как я предполагаю, что вы делали раньше.

1 голос
/ 20 декабря 2011

Вы пытались передать: validate => false в сохранение?Это позволяет обойти проверки.

В соответствии с исходным вопросом,

instance.update_attributes(new_attr_hash)

сразу же сохранится после обновления экземпляра, но вы не можете обойти проверки с update_attributes.

...