Я использую Redmine 3.3.3 и сделал для него плагин Gem.Недавно я обнаружил что-то вроде ошибки Rails (4.2), но, возможно, я не делаю правильных вещей ^^
В Redmine есть 2 формата, определенных для просмотра / проблем / редактирования:
- REDMINE / app / view / Issues / edit.html.erb
- REDMINE / app / view / Issues / edit.js.erb
Edit.js.erb используется для изменения некоторых полей в ajax, когда пользователь обновляет некоторые поля (например, поле statut)
В моем плагине Gem я переопределяю edit.html.erb:
- MYGEM / app / view / Issues / edit.html.erb
С этим переопределением Rails "разбивает" edit.js.erb, преобразовав его в MYGEM ... edit.html.erbкогда запрашивается формат js.Я могу восстановить правильное поведение, создав edit.js.erb в MYGEM с тем же содержимым Redmine.
Действительно ли мне нужно переопределять форматы js для всех перезаписываемых файлов?
ВRails, такое поведение, по-видимому, в actionview-4.2.7.1:
- : html - это запасной вариант по умолчанию для формата: js, поэтому, когда запрашивается: js, мы ищем [: js,: html] форматы (определенные в методе lookup_context.rb: format = ())
- В path_set.rb find (* args) возвращает первый путь для find_all
In path_set.rb, _find_all возвращает первые шаблоны, возвращенные распознавателем
=> Мы не ищем по всем путям, первый отвечающий распознаватель «скрывает» остальные, на самом деле это не поиск «все»
В шаблоне / resolver.rb вызовите метод запроса extract_handler_and_format_and_variant
В этом методе, если мы нашли файл с допустимым форматом, мы используем его.
С существующим edit.html.erb мы используем его, потому что: формат html разрешен
=> Мы возвращаемся в _find_all и никогда не ищем в REDMINE представлениях