Kaminari 和 Elasticsearch NoMethodError Rails
Kaminari and Elasticsearch NoMethodError Rails
我在 rails 应用程序上使用 Kaminari 和 Elasticsearch 时遇到一处错误。我找不到问题所在。我认为我的错误在我的控制器中。顺便说一下,我正在使用 active-admin 来管理我的应用程序。
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
end
控制器:
def result
if params[:q].nil?
@campings = []
else
@campings = Camping.__elasticsearch__.search params[:q].page(params[:page]).per(14)
end
end
感谢您的帮助:)
问题是您在 params[:q]
上调用 page
方法,这是一个字符串。您应该用方括号括起对 search
的调用,以便 page
方法将在 search
的结果上调用,而不是在 params[:q]
.
上调用
@campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14)
希望对您有所帮助!
我在 rails 应用程序上使用 Kaminari 和 Elasticsearch 时遇到一处错误。我找不到问题所在。我认为我的错误在我的控制器中。顺便说一下,我正在使用 active-admin 来管理我的应用程序。
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
end
控制器:
def result
if params[:q].nil?
@campings = []
else
@campings = Camping.__elasticsearch__.search params[:q].page(params[:page]).per(14)
end
end
感谢您的帮助:)
问题是您在 params[:q]
上调用 page
方法,这是一个字符串。您应该用方括号括起对 search
的调用,以便 page
方法将在 search
的结果上调用,而不是在 params[:q]
.
@campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14)
希望对您有所帮助!