Rails 2.3.14:验证时循环引用不会更新

时间:2012-03-13 10:26:43

标签: ruby-on-rails validation reference

我有一个包含对不同模型的引用的模型, 例如:

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.cover.book.is_paperback = true

还有另一种方法可以解决这个问题吗?

0 个答案:

没有答案