У меня есть модель, которая содержит ссылку на другую модель, например:
class Book
belongs_to :cover
end
class Cover
has_one :book
end
У меня есть проверки для каждой модели.пример такой проверки в модели обложки:
def book_is_paperback
if self.book.is_papreback and !self.is_paperback
errors.add(:is_paperback, "cover doesn't fit the book")
end
end
Проблема возникает, если я изменяю поля книги и пытаюсь проверить ее обложку.
book.is_paperback = true
book.cover.valid?
В этом случаеЦиклическая ссылка book.cover.book покажет мне старые значения объекта book, а не обновленные.
Кроме добавления следующей строки:
book.cover.book.is_paperback = true
Есть ли другой способ обработкиэто?