Сбой плагина вендора Rails в производственной среде - PullRequest
0 голосов
/ 10 ноября 2010

Я ожидаю, что это будет проблема n00b.

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

==> dyno-1931938.log (crash) <==
/home/slugs/258915_4fd8878_0dbe-1413ed77-735c-469d-924e-619b28cdcbac/mnt/.bundle/gems/ruby/1.8/gems/activerecord-3.0.0/lib/active_record/base.rb:1016:in `method_missing': undefined local variable or method `acts_as_paranoid' for #<Class:0x2b469869b658> (NameError)
    from /disk1/home/slugs/258915_4fd8878_0dbe-1413ed77-735c-469d-924e-619b28cdcbac/mnt/app/models/my_model.rb:17

строки 16 и 17 из my_model.rb:

class Contact < ActiveRecord::Base
  acts_as_paranoid

'acts_as_paranoid' - это плагин поставщика, который был установлен локально с помощью:

$git clone https://github.com/goncalossilva/rails3_acts_as_paranoid.git

Что я делаю не так, что heroku игнорирует плагин?


UPDATE: Я клонировал репо из герою, и каталог для плагина существует, но пуст. Мои другие плагины (т.е. ssl_requirement) имеют ожидаемый lib / и init.rb. Очевидно, что код должен быть там, чтобы работать. Что теперь?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

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

gem install acts_as_paranoid

или

sudo gem install acts_as_paranoid

Затем расскажите Heroku о драгоценном камне, добавив его в свой файл .gems:

acts_as_paranoid

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

acts_as_paranoid --version x.y.z

И убедитесь, что в вашем config / environment.rb есть запись для драгоценного камня, чтобы его отсутствие было обнаружено при запуске, а не позже:

config.gem 'acts_as_paranoid', :version => 'x.y.z'

PS: Все вышеперечисленное будет несколько отличаться, если вы используете Rails 3 и / или Bundler для управления своими драгоценными камнями.

0 голосов
/ 11 ноября 2010

Оказывается, vendor/plugins/my_plugin_directory упал с дерева мерзавца.Я решил проблему следующим образом:

$cd rails_root_directory
$git fsck
$git rm --cached vendor/plugins/my_plugin_directory
$git add vendor/plugins/my_plugin_directory/*
$git commit -am "my_plugin added to repository"
$git push heroku master

и все прямо сейчас.

...