【发布时间】:2020-08-24 21:11:11
【问题描述】:
我在 book 模型中创建了一个范围,并希望包含 author 关系。不幸的是,关系没有加载以下代码:
scope :search, ->(title) {
quoted_title = ActiveRecord::Base.connection.quote_string(title)
includes(:author).where("title % :title", title: title).
order(Arel.sql("similarity(title, '#{quoted_title}') DESC"))
}
我尝试了一些调整,例如使用 joins(:author).merge() 但关系仍未加载。知道如何在范围内加载关系吗?谢谢。
这是我通过 Ajax 调用以呈现搜索结果的方法的控制器:
def search
results_books = Book.search(search_params[:q]).first(5)
results_authors = Author.search(search_params[:q]).first(5)
results = results_books + results_authors
render json: { results: results }, status: :ok
end
【问题讨论】:
标签: ruby-on-rails