Rails Engine: расширение модели с помощью класса приложения - PullRequest
2 голосов
/ 09 июня 2010

У меня есть движок вендора / плагинов.Моя проблема в том, что я не могу дополнить модель двигателя моделью в базовом приложении.

Структура моей папки:

APPNAME
 -app
  -models
   -item.rb
 -vendor
  -plugins
   -image_gallery
    -app
     -models
      -image_gallery.rb

Ничего особенного ... в моей image_gallery.RB у меня есть только это:

class ImageGallery < Item
end

Но Rails жалуется на отсутствующие методы, которые определены в item.rb.Если я определю их в image_gallery.rb, это сработает.

Ответы [ 2 ]

1 голос
/ 09 июня 2010

Вы можете попробовать установить config.cache_classes = true в вашем development.rb

1 голос
/ 09 июня 2010

Я считаю, что это проблема порядка загрузки. Каталог продавца не перезагружается в режиме разработки. Модель в вашем приложении не была загружена, когда ваша модель двигателя пытается наследовать ее.

Извините, я не знаю, как это исправить, и никогда не нашел. Я думаю, что рельсы 3 будут решать эту проблему. Обычно мы просто сохраняем соответствующие модели в одном и том же движке или перемещаем движок в основное приложение, чтобы избежать этого. Это отстой, и я хотел бы знать правильное решение.

Попробуйте в производственном режиме, и проблема не возникнет. Вы можете посмотреть на использование дробовика, если это так.

...