【问题标题】:Kaminari and Elasticsearch NoMethodError RailsKaminari 和 Elasticsearch NoMethodError Rails
【发布时间】:2016-12-29 09:59:38
【问题描述】:

我在 Rails 应用程序上使用 Kaminari 和 Elasticsearch 时遇到一个错误。我无法找到问题所在。我认为我的错误在于我的控制器。顺便说一句,我正在使用 active-admin 来管理我的应用程序。

"France":String 的未定义方法 `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

感谢您的帮助:)

【问题讨论】:

    标签: ruby-on-rails ruby elasticsearch pagination kaminari


    【解决方案1】:

    问题是你在params[:q] 上调用page 方法,这是一个字符串。您应该用括号括起对search 的调用,以便page 方法将在search 的结果而不是params[:q] 上调用。

    @campings = Camping.__elasticsearch__.search(params[:q]).page(params[:page]).per(14)
    

    希望这会有所帮助!

    【讨论】:

    • @nicolaswecandoit,很高兴它有帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多