【发布时间】:2023-03-30 05:24:01
【问题描述】:
在设置搜索到序列化程序之后! Rails 吐出来了
没有将 nil 隐式转换为 Hash
那么,请有人指出这段代码有什么问题?
class SearchController < ApplicationController
def results
results_query = PgSearch.multisearch(params[:q]).paginate(page: page, per_page: 20)
result = results_query.map(&:searchable).map do |result_item|
case result_item.class.name
when 'Post'
PostSerializer.new(result_item)
else
raise NotImplementedError
end
end
render json: {
items: result,
page: page,
pages: results_query.total_pages
}
end
def page
params[:page] || 1
end
def serialize(data, serializer)
ActiveModel::Serializer::CollectionSerializer.new(data, each_serializer: serializer)
end
end
【问题讨论】:
-
错误来自哪一行代码?
-
似乎是这个:results_query = PgSearch.multisearch(params[:q]).includes([:searchable]).paginate(page: page, per_page: 20)
-
请提供日志输出(尤其是显示从 HTTP 请求解析的参数的行)和实际的堆栈跟踪,以便可以有效地帮助您。否则真的很难提供帮助。
-
@ClemensKofler ,我添加了堆栈跟踪的屏幕截图。好吗?
-
我有一个类似的问题,升级 pg_search gem 后解决了
标签: ruby-on-rails json ruby pg-search