Мне нужно иметь возможность запускать пользовательские задачи в отношении форума Discourse. Есть ли способ загружать rake-задачи, определенные в плагине, чтобы их можно было использовать в продакшене?
Думаю, это должно сработать. Просто поместите их в ту же директорию в плагине, где они находятся в ядре.
Раньше я делал так, создавая задачу Rake, которая выполняется после другой, но отдельную задачу не создавал.
Да, это работает. Сначала у меня не получалось, поэтому я задал вопрос, но я попробовал снова, и всё сработало с первого раза.
Я добавил свою задачу rake в lib/tasks в своём плагине. Решил подтвердить, что это работает, на случай, если кто-то ещё наткнётся на эту проблему.
У кого-нибудь было, что задачи Rake в lib/tasks выполняются дважды? У нас задача rake subscriptions:procourse_convert выполняется дважды.
Привет, @kimardenmiller! Ты когда-нибудь узнала, почему твоя задача rake выполняется дважды?
Кажется, это было связано с объявлением одного и того же метода в двух местах, что, возможно, привело к его двукратному выполнению. Не проверено, но стоит это проверить.
РЕДАКТИРОВАНИЕ: Я, кажется, разобрался, как это происходит.
Это не совсем следует правилам, или, возможно, слишком строго им следует.
Проблема в том, что если вы ссылаетесь на файл rake в plugin.rb, он, похоже, выполняется дважды, но задача rake включается даже без явной ссылки на неё, поэтому нет необходимости загружать её во время инициализации.
Насколько мне известно, здесь нет никакой специфичной для Discourse логики. Я предполагаю, что файлы задач автоматически загружаются, если вы определили ::Rails::Engine для своего плагина?