Чтобы переключиться, просто измените вашу конфигурацию, заменив существующий репозиторий babble на: https://github.com/PuttyTribe/babble.git, и выполните пересборку.
О, какое совпадение! Недели без активности, а тут два решения с разницей в 20 минут!
Сначала я выбрал именно то решение, но решил использовать универсальный вариант, так как параметр ни в одном случае не используется.
Я объединил PR от @merefield, который исправляет эту проблему.
@ti0 Спасибо и за твой PR. Аргумент действительно используется Если вызывать super без аргументов (то есть вместо super()), аргументы подкласса автоматически передаются в super. Если посмотреть на переопределяемый метод, можно увидеть, где используется этот аргумент: discourse/lib/search.rb at main · discourse/discourse · GitHub.
@ti0@merefield В качестве побочного замечания: стоит создать PR для ядра Discourse, чтобы добавить хук для добавления новых type_filters в класс Search из плагина. Это было бы более производительным и стабильным решением, чем патчинг метода execute. Это может стать интересным небольшим проектом, если вам удастся убедить команду Discourse, что такое дополнение оправдано.
@justin Вам удалось это исправить? У меня была та же проблема, пока я не изменил способ загрузки движка Babble в своей ветке. Подозреваю, что дело в том, как разные окружения обрабатывают метод загрузки файлов @gdpelican в инициализаторе, то есть:
Точно определить сложно. Возможно, я сделаю PR, чтобы обновить метод загрузки файлов Babble, и посмотрю, согласен ли @gdpelican изменить это на стандартный метод плагинов Discourse: использовать load с File.expand_path вместо require с Rails.root.
редактирование Я также добавил Babble на try.thepavilion.io, чтобы вы могли протестировать его в окружении, которое обновляется каждые 24 часа.
В будущем, если в Babble возникнет критическая ошибка (то есть он перестанет работать полностью) и Джеймс будет недоступен, пожалуйста, напишите @angus или @merefield, и мы это исправим (или проверим ваш PR ).
Я имел в виду, что параметр не используется внутри переопределённого метода, который мы изменили. Исходя из того, что вы говорите, мой код должен всё ещё работать, потому что вызов super просто передаст **args, который собираёет именованные аргументы, и это более стабильно, если в будущем будут добавлены другие параметры. Имеет ли это смысл? Или я что-то упускаю?
Только что провел небольшой тест, и ваш вариант тоже работает для текущих задач (то есть сохраняет функциональность readonly_mode). Это немного странно с концептуальной точки зрения, если подумать: **args теоретически должны быть установлены ещё до вызова суперкласса. Лично я (хотя у Джеймса может быть другое мнение) всё же предпочитаю более явный подход, так как мы уже передаём аргументы неявно, просто вызывая super. Добавление ещё одной порции неявности через **args кажется излишне усложнённым.
Хотя я понимаю, к чему вы клоните, в целом я считаю, что в таких ситуациях лучше искать явный способ избежать конфликтов с основным кодом, а не полагаться на методы-«ловушки» с неявным поведением. Такой подход часто приводит к другим проблемам в будущем. Как я уже упоминал выше, я бы предпочёл, если бы мы могли рефакторить это, добавив новый type_filter в основную кодовую базу. Это была бы отличная небольшая задача, я считаю.
Кто-нибудь интегрировал Memberful, и у вас отображилось реальное имя пользователя под его ником в чате?
Я бы хотел скрыть реальное имя, если это возможно.
Редактирование: У меня есть временное решение — просить участников указывать свой никнейм в качестве полного имени при регистрации, либо я вручную меняю полное имя на никнейм после их регистрации.
@angus, на данный момент вы, возможно, самый доступный помощник в Babble. Поэтому я обращаюсь к вам с запросом на обновление кода, хотя буду рад, если этим займётся кто-то другой.
Я только что обновил нашу версию Discourse до 2.6.0beta2 (а именно эту версию коммита на GitHub), и теперь выборщик эмодзи не работает.
@itsbhanusharma помогает нам с установкой Discourse, и его первая мысль — проблема совместимости с обновлением выборщика эмодзи в ядре Discourse.
Проблема с выборщиком эмодзи
Окружение:
Браузер: Firefox или Chrome (последняя сборка)
Вид: настольный компьютер, планшет и мобильное устройство
Возможность воспроизвести проблему: 100%
@angus или кто-либо ещё, кто обладает техническими навыками для помощи с Babble в наши дни, есть ли у вас какие-либо надежды на исправление двух проблем, о которых я сообщил три недели назад в этом ответе на форуме?
Привет @angus, спасибо за твою усердную работу над этим плагином!
Моя система Discourse работает с пользовательским базовым URL для долгого опроса. Поскольку я только что добавил Babble, я заметил, что он не добавляет никаких заголовков Access-Control (CORS), из-за чего множество запросов завершаются неудачей.
Я мог бы написать исправление, если бы ты указал мне правильное направление в коде.
После установки последних обновлений Discourse и новейшей версии Babble (несколько дней назад и снова вчера, чтобы проверить, исправлена ли проблема) у меня возникли проблемы с отправкой сообщений, а также индикатор прочтения застрял, показывая наличие новых сообщений.
Только что, когда я не смог отправить сообщение, в консоли браузера появилось множество ошибок такого вида:
Uncaught Error: No Reason Phrase
jQuery 13
error _application-49dab3118e527975ea48703627a0152cbe26663b7fde8423c667b094d716ae08.js:8967
jQuery 4
_ember_jquery-865569b174cc91f4563f3552f437b32c6eadf9f6c3d49eae02cfe50e5a8c7dfa.js:38573:14
jQuery 13
u self-hosted:1177
error _application-49dab3118e527975ea48703627a0152cbe26663b7fde8423c667b094d716ae08.js:8967
jQuery 4