2016-08-22 3 views
0

У меня есть одна ошибка с Kaminari и Elasticsearch on rails app. Я не могу найти проблему. Я думаю, моя ошибка в моем контроллере. Кстати, я использую active-admin для администрирования своего приложения.Kaminari и Elasticsearch NoMethodError Rails

неопределенный метод `страница» для "Франция": Струнный

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 

Спасибо за вашу помощь :)

ответ

0

Проблема заключается в том, что вы вызываете метод page на params[:q], который является строкой. Вы должны приложить вызов к search с помощью скобок, чтобы метод page был вызван по результату search, а не на params[:q].

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

Надеюсь, это поможет!

+0

Да! спасибо за этот ответ, это прекрасно :) – nicolaswecandoit

+0

@nicolaswecandoit, рад, что это помогло :) –