我在rails app上遇到Kaminari和Elasticsearch的一个错误。 我无法找到问题。 我想我的错误在于我的控制器。 顺便说一句,我使用active-admin管理我的应用程序。
“法国”的未定义方法“page”:字符串
Elasticsearch.rb
case when defined?(::Kaminari) Elasticsearch::Model::Response::Response.__send__ :include, Elasticsearch::Model::Response::Pagination::Kaminari when defined?(::WillPaginate) Elasticsearch::Model::Response::Response.__send__ :include, Elasticsearch::Model::Response::Pagination::WillPaginate end控制器:
def result if params[:q].nil? @campings = [] else @campings = Camping.__elasticsearch__.search params[:q].page(params[:page]).per(14) end end谢谢你的帮助 :)
I have one error with Kaminari and Elasticsearch on rails app. I am unable to find the problem. I think my mistake is in my controller. By the way I am using active-admin for administrate my app.
undefined method `page' for "France":String
Elasticsearch.rb
case when defined?(::Kaminari) Elasticsearch::Model::Response::Response.__send__ :include, Elasticsearch::Model::Response::Pagination::Kaminari when defined?(::WillPaginate) Elasticsearch::Model::Response::Response.__send__ :include, Elasticsearch::Model::Response::Pagination::WillPaginate endController:
def result if params[:q].nil? @campings = [] else @campings = Camping.__elasticsearch__.search params[:q].page(params[:page]).per(14) end endThanks for your help :)
最满意答案
问题是你在params[:q]上调用了一个字符串的page方法。 你应该用括号括起search调用,以便在search结果上调用page方法,而不是在params[:q]上调用。
@campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14)希望这可以帮助!
The problem is you're calling the page method on params[:q] which is a string. You should enclose the call to search with brackets so that the page method will be called on the result of search and not on params[:q].
@campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14)Hope this helps!
更多推荐
发布评论