Rails 3.2: Попытка использовать гем «Всякий раз», но файл журнала продолжает выдавать: Не удалось найти multi_json-1.1.0 ни в одном из источников (Bundler::GemNotFound) ошибка

Я пытаюсь использовать гем Whenever, чтобы запланировать еженедельную задачу по отправке электронной почты. Сначала я проверил, чтобы электронное письмо действительно отправлялось, вызывая метод каждый раз, когда пользователь обновлялся. Итак, теперь я пытаюсь отправлять электронную почту еженедельно, а не при каждом обновлении, однако я продолжаю получать следующую ошибку в моем файле cron.log:

Could not find multi_json-1.1.0 in any of the sources (Bundler::GemNotFound)

Я провел довольно много исследований и еще ничего не нашел, любая помощь была бы отличной. Я опубликую соответствующий код ниже:

app/mailers/weekly_digest_test_mailer.rb

class WeeklyDigestTestMailer < ActionMailer::Base
  default from: "[email protected]"

  def send_email(user)
    @user = user
    @last_question = @user.questions.last.description

    mail to: @user.email, subject: "This is a test email"
  end
end

приложение/models/user.rb

def self.send_email_to_user
    WeeklyDigestTestMailer.send_email(self).deliver
end

config/schedule.rb

every 1.minute do
    runner "User.send_email_to_user", :environment => 'development', :output => 'log/cron.log'
end

Gemfile

source 'https://rubygems.org'

gem 'rails', '3.2.0'
gem "bootstrap-tooltip-rails", "~> 0.1"
gem 'whenever', :require => false

group :production do
  gem "exception_notification", "~> 2.5.2", :require => 'exception_notifier'
  gem "mysql", "~> 2.8.1"
end

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem "jquery-rails"
gem "devise", "~> 2.0.4"
gem 'gauge', git: '[email protected]:AgilionApps/gauges.git'

gem "capistrano"
gem "capistrano-ext"

group :development do
  gem "awesome_print", "~> 1.0.2"
  gem "mail", "2.4.1"
end

group :test do
  gem "minitest", "~> 2.11.2"
  gem "turn", "~> 0.9.3"
  gem "mocha", "~> 0.10.4"
end

group :test, :development do
  gem "sqlite3", "~> 1.3.5"
end

group :staging do
  # gem "pg", "~> 0.13.1"
end  

Выходные данные установки пакета:

Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.1.0) 
Using activesupport (3.2.0) 
Using builder (3.0.0) 
Using activemodel (3.2.0) 
Using erubis (2.7.0) 
Using journey (1.0.3) 
Using rack (1.4.1) 
Using rack-cache (1.1) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.0) 
Using mime-types (1.17.2) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.1) 
Using actionmailer (3.2.0) 
Using arel (3.0.2) 
Using tzinfo (0.3.31) 
Using activerecord (3.2.0) 
Using activeresource (3.2.0) 
Using ansi (1.4.2) 
Using awesome_print (1.0.2) 
Using bcrypt-ruby (3.0.1) 
Using bundler (1.1.4) 
Using rack-ssl (1.3.2) 
Using json (1.6.5) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.0) 
Using rails (3.2.0) 
Using bootstrap-tooltip-rails (0.1) 
Using highline (1.6.11) 
Using net-ssh (2.3.0) 
Using net-scp (1.0.4) 
Using net-sftp (2.0.5) 
Using net-ssh-gateway (1.1.0) 
Using capistrano (2.11.2) 
Using capistrano-ext (1.2.1) 
Using chronic (0.6.7) 
Using coffee-script-source (1.2.0) 
Using execjs (1.3.0) 
Using coffee-script (2.2.0) 
Using coffee-rails (3.2.2) 
Using orm_adapter (0.0.6) 
Using warden (1.1.1) 
Using devise (2.0.4) 
Using exception_notification (2.5.2) 
Using gauge (0.0.2) from [email protected]:AgilionApps/gauges.git (at master) 
Using jquery-rails (2.0.0) 
Using metaclass (0.0.1) 
Using minitest (2.11.2) 
Using mocha (0.10.4) 
Using mysql (2.8.1) 
Using sass (3.1.15) 
Using sass-rails (3.2.4) 
Using sqlite3 (1.3.5) 
Using turn (0.9.3) 
Using uglifier (1.2.3) 
Using whenever (0.7.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

person ggrillone    schedule 14.06.2012    source источник
comment
Вы можете опубликовать свой gemfile? это может быть так же просто, как добавить gem "json" в ваш gemfile или gem 'multi_json' и запустить bundle install   -  person Geoff Lanotte    schedule 14.06.2012
comment
хорошо, я только что опубликовал это. Кроме того, я уже пытался добавить гем «multi-json», «1.1.0» и продолжал получать следующее сообщение после установки пакета: Не удалось найти гем «мульти-json (= 1.1.0) ruby» в гемах, доступных на этом машина.   -  person ggrillone    schedule 14.06.2012
comment
gem "mutli_json" с подчеркиванием, а не тире, и не указывайте там требование к версии только для тестирования.   -  person Geoff Lanotte    schedule 14.06.2012
comment
Хорошо, я поместил gem 'multi_json' в Gemfile и запустил установку пакета, но все равно получаю ту же ошибку :(   -  person ggrillone    schedule 14.06.2012
comment
Я не уверен, что это вызывает проблему, потому что раньше я пытался отправлять электронные письма без указания времени, и они были отправлены, но я просто проверяю это на локальном хосте: 3000.   -  person ggrillone    schedule 14.06.2012
comment
Я только что нашел это, может помочь вам... stackoverflow.com/questions/10242219/   -  person Geoff Lanotte    schedule 14.06.2012
comment
Я также пытался указать версию «1.1.0», но все равно выдавал ту же ошибку. Я только что попробовал решение по ссылке, которую вы разместили, удалив Gemfile.lock и запустив установку пакета, но теперь выдает эту ошибку: Не удалось найти activesupport-3.2.0 ни в одном из источников (Bundler::GemNotFound)   -  person ggrillone    schedule 14.06.2012
comment
и когда я запускаю пакетную установку, он говорит: Использование multi_json (1.1.0), может быть, какая-то проблема с путем?   -  person ggrillone    schedule 14.06.2012
comment
Это несколько странно, убедитесь, что вы используете самый последний сборщик gem update bundler. также попробуйте добавить в список источников с помощью source :rubygems, это почти похоже на то, что он не видит удаленный репозиторий драгоценных камней. Если это не сработает, добавьте полный вывод при запуске bundle install   -  person Geoff Lanotte    schedule 15.06.2012
comment
какую рубиновую версию вы используете? какая у вас платформа означает mac, linux или что?   -  person AMIC MING    schedule 15.06.2012
comment
Пробовал, все еще безуспешно, то же сообщение об ошибке :( Я опубликую вывод установки пакета выше. Я использую ruby ​​1.9.3 (всякий раз, когда поддерживает эту версию), и я использую Mac OS X 10.7   -  person ggrillone    schedule 15.06.2012
comment
Ничего особо не менял, но теперь в лог-файле появляется следующая ошибка: Не удалось найти activesupport-3.2.3 ни в одном из источников (Bundler::GemNotFound). Я попытался удалить «когда угодно» и все связанные файлы и начать с нуля, я также попытался создать базовое приложение, чтобы исключить лишний код для тестирования «когда угодно», в обоих случаях была одна и та же ошибка, может быть, это проблема с настройкой моей среды?   -  person ggrillone    schedule 15.06.2012
comment
Вы используете РВМ? Похоже, что упаковщик использует один набор драгоценных камней, а сервер использует другой — вы можете перечислить свои наборы драгоценных камней с помощью rvm gemset list — в моем случае (Passenger на Apache) я был сразу после крупного обновления Ruby, Rails, Gem, Rake & Bundler, но Passenger не не уведомлен. Это решило мою проблему, возможно, кто-то свяжет это с проблемой локального хоста... (в случае локального хоста нет . rvmc в корневом каталоге, отвечающий за то же самое, что и в этой ссылке? Например: rvm <gemset_name> строка или что-то в этом роде?)   -  person Jakub Naliwajek    schedule 09.07.2012


Ответы (1)


У меня были похожие проблемы в OS X. В основном из-за разных установленных версий Ruby. Или встроенная версия борется с версиями, которые я установил сам.

Что нужно проверить:

  1. введите which ruby в терминале
  2. вывод имеет смысл с тем, что вы установили?
  3. используете ли вы какие-либо менеджеры Ruby (например, rvm или rbenv)?
  4. если это так, проверьте свои пути в /.bash_profile или /.bashrc, чтобы увидеть, куда они указывают. Эта ссылка может помочь с установкой и настройкой rbenv.
  5. I use rbenv so I have this in my bash_profile before any other $PATH declarations to make sure it grabs those executables first:

    export PATH="$HOME/.rbenv/bin:$PATH"

  6. что говорит gem env? Это правильный путь?
  7. Я использую Ruby 1.9.3 локально, но мне приходится иметь дело с 1.8.7 удаленно из-за проблем с нашей хостинговой компанией, поэтому обе версии установлены локально. Я забываю обновить bundle install для правильной версии команды Ruby и ломаю голову, когда получаю ошибки, подобные той, которую вы видите. Надеюсь, у вас нет этой проблемы, но я просто указываю на нее на случай, если она направит вас по правильному пути.
  8. bundle exec rails console или bundle exec rails server делают то же самое, что и rails console и rails server соответственно?
  9. Если нет, то где вы устанавливаете пакеты? Просто bundle install или bundle install --path vendor/bundle?
Hopefully some of this will help you pinpoint the problem.

Если вы в отчаянии, удалите встроенную версию Ruby и установите новую версию с помощью rvm или rbenv (я предпочитаю rbenv после множества проблем с rvm) и попробуйте еще раз, чтобы увидеть, работает ли это.

person kakubei    schedule 09.07.2012