ассоциация activerecord, предотвращающая сохранение записи - PullRequest
0 голосов
/ 28 июля 2010

У меня прямая связь между двумя моделями: Актив и Обновление.

обе модели (минус несвязанные методы) здесь:

http://pastie.org/1062627

Я столкнулся с проблемой, когда запись актива больше не будет обновляться. Например простой тест:

a = Asset.first ; puts a.description; a.description = "new" ; a.save ; puts a.errors ; puts Asset.first.description 

сгенерирует:

"old"   {}    "old"

a.save возвращает true, a.errors пусто; но изменение не сохраняется.

Я просмотрел каждый элемент в моей модели активов, чтобы попытаться выяснить, что его вызвало, и обнаружил, что если я удалил отношение «own_to: update», то все работало нормально.

Но как связь с другой таблицей без проверок может помешать сохранению записи, остается загадкой. (Кроме того, если бы это была проблема с проверкой, то при попытке сохранения @ asset.errors не было бы пустым.)

Чтобы сделать ситуацию более странной, я решил переименовать мою модель обновления в модель отчета. С этим все получилось. Поэтому, возможно, «Обновление» - это зарезервированное имя для модели (кажется маловероятным). Но я не хочу переименовывать эту модель, если мне не нужно (это уже слишком много мест), поэтому я думаю, что здесь должно быть что-то еще, что не так или что я скучаю.

Любая помощь приветствуется. Спасибо.

1 Ответ

0 голосов
/ 28 июля 2010

Вызов ассоциации «обновление» является проблемой.Чтобы загрузить связанное обновление актива, вам необходимо сделать следующее:

@asset.update

Но обновление - это метод экземпляра, который уже определен ActiveRecord:

http://apidock.com/rails/ActiveRecord/Base/update

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