Вам необходимо предоставить больше информации. Из приведенных примеров видно, что нет необходимости беспокоиться даже о плагине. На самом деле в вашем вопросе нет ничего, что зависело бы от какой-либо информации из плагина.
Тем не менее, у вас есть законные вопросы о плагинах. Обычно плагины работают так: вы определяете ваши новые методы и классы в модулях, а затем включаете те модули в базовые классы Rails, которым они принадлежат.
Общая структура плагина выглядит следующим образом:
plugin/
- Readme
- init.rb
- install.rb
- test/
- unit and functional tests
- lib/
- plugin source files
- generators/
- any generators you want to provide
В вашем случае вы, вероятно, сделали что-то вроде следующего. Который при правильной структуре плагина находится в файле, как плагин / lib / recipes.rb
module Recipes
def link_to_recipe
..
end
end
В плагинах init.rb вы хотели бы сделать это, чтобы добавить новый метод к доступным в представлениях:
require 'lib/recipes.rb'
ActionView::Base.send(:include, Recipies)
Rails будет иметь доступ ко всем генераторам из каталога плагина, и вы должны использовать init.rb (который загружается при автоматическом запуске Rails), чтобы загрузить библиотеки плагина и подключить его к базовому классу. install.rb используется для выполнения любых задач, которые ваш плагин должен выполнить после установки. Его выполнение запускается после того, как ваш пользователь установил плагин с script/plugin install
. install.rb должен использоваться для копирования ресурсов, в значительной степени принадлежащих общедоступному каталогу. От этого зависит ваш плагин. Однако, если вы используете движки, тогда ваш плагин - это миниатюрное приложение Rails, и вам не нужно будет копировать ресурсы.
Из любопытства, вы собираетесь использовать этот модуль рецептов в более чем одном проекте? Если нет, то вам не стоит заниматься дополнительными задачами создания плагина. Вместо этого код принадлежит связанному вспомогательному модулю или RAILS_ROOT / lib