我有一个 Book 模型、一个 User 模型和一个 Read 模型。一本书可以有很多阅读,一个用户可以有很多阅读。基本上,在阅读中是某个用户已阅读的所有书籍。
现在我想显示某个用户的所有未读书籍的列表。假设用户已登录并且有一个 current_user 对象,我将如何获得这样的列表?
我目前有这个:
@unread_books = Book.find(:all, include: :reads, conditions: ["books.id NOT IN (?)", current_user.read_ids])
但这会将书籍 ID 映射到阅读 ID。它应该是这样的:
conditions: ["books.id NOT IN (?)", current_user.read_book_ids]
但这给出了一个错误:
undefined method `read_book_ids' for #<User:0x007fb21782b3f8>
那么,如何将书籍 ID 映射到 Read 中的外键书籍 ID?