Почему Rails не может найти драгоценные камни? - PullRequest
0 голосов
/ 10 марта 2019

Я установил гем геокодера в свой гемфайл так:

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'

Есть идеи?

1 Ответ

0 голосов
/ 11 марта 2019

Я думаю, что проблема заключается в том, что необходимо сделать bundle update. Всегда, чтобы вы добавили драгоценный камень в свой Gemfile, необходимо сделать это.

...