我有以下 Rails 代码:
class Shop < ActiveRecord::Base
# ...
def validate_books_have_authors
self.books.each do |book|
# Urghh...caching book.authors unless we call directly
# puts book.authors
errors[:books] << t('book.no_authors', :book => book.name) unless book.authors.any?
end
end
end
在第一次运行时,验证器将正确处理......但如果我再次运行相同的方法,book.authors.any 的值?返回缓存值,除非我取消注释将 book.authors 行
所以,一个简单的问题:我如何确保 book.authors.any 的价值?没有缓存?