Существует такой код.
# BOOK model
belongs_to :author
# AUTHOR model
has_many :book
# CATEGORY model
has_many :author
def function
books.select{ |book| book.author.category.type.eql?('fantastic') }
end
Связи могут вас как то спутать, но не в этом суть.
Проблема в том что при каждой итераций происходит запрос к
ДБ.
Пробовал решить проблему через
includes.
def function
books
.includes({
author: {
category: {}
}
})
.select{ |book| book.author.category.type.eql?('fantastic') }
end
Но при вызове дает
undefined method `includes' for #Array:0x000...
А если взять id и осуществить поиск по модели, будет ли это хорошим решением ?
def function
Books
.includes({
author: {
category: {}
}
})
.where(id: books.pluck(:id))
.select{ |book| book.author.category.type.eql?('fantastic') }
end
Буду рад видеть ваши варианты для сокрашений запросов к ДБ при каждой итераций, так как я уже не знаю что еще можно сделать.