Неопределенная локальная переменная или метод searchkick
Я пытаюсь добавить Searchkick в свое приложение на Rails. Я следую точным инструкциям на странице Начало работы, но получаю следующую ошибку:
Started GET "/airports" for 10.0.2.2 at 2014-05-26 10:20:33 +0000
Processing by AirportsController#index as HTML
Completed 500 Internal Server Error in 26ms
NameError (undefined local variable or method `searchkick' for #<Class:0xb48f3ba8>):
app/models/airport.rb:2:in `<class:Airport>'
app/models/airport.rb:1:in `<top (required)>'
app/controllers/airports_controller.rb:3:in `index'
Rendered /home/vagrant/.rvm/gems/ruby-2.1.1@global/gems/actionpack-4.1.1/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.5ms)
Rendered /home/vagrant/.rvm/gems/ruby-2.1.1@global/gems/actionpack-4.1.1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.2ms)
Rendered /home/vagrant/.rvm/gems/ruby-2.1.1@global/gems/actionpack-4.1.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.9ms)
Rendered /home/vagrant/.rvm/gems/ruby-2.1.1@global/gems/actionpack-4.1.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (19.8ms)
Вот как выглядит модель аэропорта:
# ./app/models/airport.rb
class Airport < ActiveRecord::Base
searchkick
end
И вот как выглядит контроллер аэропорта:
# ./app/controllers/airports_controller/rb
class AirportsController < ApplicationController
def index
@airports = Airport.all
end
end
Что вызывает это?
1 ответ
Решение
Перезагрузите сервер. Сервер должен быть перезапущен после внесения изменений в Gemfile.
Другие вещи, которые вы можете попробовать, если это не сработает:
- добавлять
gem 'searchkick'
в Gemfile bundle install
Тоже самое. Я проверилgem list
, searchkick был там.
Но я удалил searchkick
в Gemfile и запустил bundle install
. Затем добавьтеsearchkick
а также bundle install
опять же хорошо работает:)