Я согласен с ответом Александра . Но я бы добавил несколько заметок:
- Я уверен, что для этого нужно запустить плагин
- Учитывая все возможности расширения Redmine, Tutorial очень неполный
- Я бы позаботился перед тем, как приступить к обучению. У меня были некоторые проблемы, кажется устаревшие , но все еще полезная ссылка
- Вы можете найти или опубликовать sh плагины на Redmine , но эта страница немного странная
Сначала я нашел Документы о Redmine, которые очень полезны для всего видения кода. К сожалению, в Redmine есть немного комментариев к коду, большая ошибка на мой взгляд.
Я думаю, вам нужно использовать следующую структуру:
Файл init.rb вашего плагина должен внедрить код в Project Redmine или любую модель / класс, которую вам нужно переопределить, например, так: :
require 'redmine'
# code injection
ActionDispatch::Reloader.to_prepare do
require 'my_file' # but the file is actually lib/my_file.rb
Project.send :include, MyFile
end
Redmine::Plugin.register :myproject do
name 'My New Project Plugin'
# ... the rest of your config
end
Как только вам потребуется 'my_file' в init.rb , он должен находиться в каталоге lib (lib / my_file.rb) . Итак, дерево вашего плагина должно быть:
-myproject
-app
-config
-db
-lib
my_file.rb
-test
'my_file' - это модуль, подобный следующему:
module MyFile
extend ActiveSupport::Concern
included do
# put your code here
end
end
Ваш модуль может переопределять методы в Project. Если вы : включите модуль с тем же методом в модель Project, ваш код перезапишет код ядра.
Существует устаревший способ переопределить методы, которые я рекомендую в качестве справочной информации, хотя мне нужно исправить это в моем плагине: alias_method_chain .
Что ж, кодирование Ruby, Ruby на Rails и плагинах для Redmine - это что-то новое для меня и немного проблем, поэтому я предлагаю вам посчитать это хорошим советом, которого у меня никогда не было!
И последнее, но не менее важное: зарегистрируйтесь на https://www.redmine.org и пользуйтесь форумами. Прочитайте все ссылки в https://www.redmine.org/projects/redmine/wiki/Developer_Guide.
Хорошая работа.