Я установил гем геокодера в свой гемфайл так:
gem 'geocoder', '~> 1.5.1'
Затем я добавил эту строку в мою модель
class Place < ApplicationRecord
geocoded_by :address
end
Я получаю эту ошибку:
undefined method `geocoded_by' for #<Class:0x00007f8b58b763b8>
Есть идеи, почему я получаю эту ошибку? Я подумал, что установки гема будет достаточно, но, очевидно, Rails не может найти библиотеку Geocoder.
ОБНОВЛЕНИЕ # 1 Вот мой гемфайл
source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
ruby '2.5.1'
gem 'rails', '~> 5.2.2'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'mini_racer', platforms: :ruby
gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bootsnap', '>= 1.1.0', require: false
gem 'impressionist', '~> 1.5', '>= 1.5.1'
gem 'geocoder', '~> 1.5', '>= 1.5.1'
group :development, :test do
gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end
group :development do
gem 'web-console', '>= 3.3.0'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring'
gem 'spring-watcher-listen', '~> 2.0.0'
end
group :test do
gem 'capybara', '>= 2.15'
gem 'rspec-rails'
gem 'selenium-webdriver'
gem 'chromedriver-helper'
end
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
ОБНОВЛЕНИЕ № 2
Когда я запускаю gem list geocoder
, это то, что выводит:
*** LOCAL GEMS ***
geocoder (default: 1.5.1, 1.4.8, 1.4.7)
ОБНОВЛЕНИЕ № 3 Не думаю, что это просто геокодер ...
Я добавил это в свой gemfile:
group :development do
# other gems are here, they're just not listed.
gem "better_errors"
gem "binding_of_caller"
end
Однако я все еще получаю регулярные ошибки. Так что теперь, даже лучшая ошибка драгоценных камней не обнаружена !!!
ОБНОВЛЕНИЕ # 4 Добавление модели моего места и записи приложения
class Place < ApplicationRecord
extend FriendlyId
friendly_id :name, use: :slugged
geocoded_by :address
end
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
end
ОБНОВЛЕНИЕ № 5 Github выдает рекомендации
Было рекомендовано добавить это вверху файла моей модели:
extend Geocoder::Model::ActiveRecord
Это было своего рода обходное решение, но даже это не сработало!
Я получаю эту ошибку: uninitialized constant Place::Geocoder
ОБНОВЛЕНИЕ № 6 | Временное исправление
Я понизил gem 'geocoder', '~> 1.5.1'
до gem 'geocoder', '1.5'
Есть идеи?