/
Dmitry-F
/
cbt_tool
Обзор
Документация
Войти
/
Dmitry-F
/
cbt_tool
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
fix_search.sh
80 строк
3 KB
Dmitriy-Filatov
Глобальный полнотекстовый поиск (FTS) внедрён
19 мар 2026, 21:45
19 мар 2026, 21:45
94b70c9
Код
Авторство
О чём код?
#!/bin/bash echo "🔧 АВТОИСПРАВЛЕНИЕ ГЛОБАЛЬНОГО ПОИСКА" echo "======================================" # Определяем ОС и флаг для sed if [[ "$OSTYPE" == "darwin"* ]]; then SED_FLAG="-i ''" else SED_FLAG="-i" fi # 1. Фиксим application.html.erb APP_LAYOUT="app/views/layouts/application.html.erb" if [ -f "$APP_LAYOUT" ]; then echo "📝 Исправляем $APP_LAYOUT..." eval sed $SED_FLAG 's/data-turbo-frame: *"[^"]*"/data-turbo-frame: "search_results_frame"/g' "$APP_LAYOUT" eval sed $SED_FLAG 's/<div id="global-search-results" data-search-target="results" class="[^"]*">/<div id="global-search-results" data-search-target="results" class="hidden">/' "$APP_LAYOUT" if ! grep -q "<%= turbo_frame_tag .*search_results_frame" "$APP_LAYOUT"; then eval sed $SED_FLAG '/data-search-target="results"/a\ <%= turbo_frame_tag "search_results_frame" %>' "$APP_LAYOUT" fi echo "✅ $APP_LAYOUT исправлен" else echo "❌ Файл $APP_LAYOUT не найден" fi # 2. Фиксим index.html.erb SEARCH_INDEX="app/views/search/index.html.erb" if [ -f "$SEARCH_INDEX" ]; then echo "📝 Исправляем $SEARCH_INDEX..." eval sed $SED_FLAG 's/turbo_frame_tag .*/turbo_frame_tag "search_results_frame" do/g' "$SEARCH_INDEX" echo "✅ $SEARCH_INDEX исправлен" else echo "❌ Файл $SEARCH_INDEX не найден" fi # 3. Проверяем регистрацию Stimulus-контроллера INDEX_JS="app/javascript/controllers/index.js" if [ -f "$INDEX_JS" ]; then echo "📝 Проверяем регистрацию search_controller..." if ! grep -q "search_controller" "$INDEX_JS"; then echo "⚠️ search_controller не найден в index.js!" echo " Добавьте вручную:" echo " import SearchController from \"./search_controller\"" echo " application.register(\"search\", SearchController)" else echo "✅ Контроллер зарегистрирован" fi else echo "❌ Файл $INDEX_JS не найден" fi # 4. Проверяем контроллер CONTROLLER="app/controllers/search_controller.rb" if [ -f "$CONTROLLER" ]; then echo "📝 Проверяем $CONTROLLER..." if ! grep -q "render layout: false if turbo_frame_request?" "$CONTROLLER"; then echo "⚠️ Добавляем render layout: false в контроллер..." eval sed $SED_FLAG '$i\ render layout: false if turbo_frame_request?' "$CONTROLLER" else echo "✅ Контроллер в порядке" fi else echo "❌ Файл $CONTROLLER не найден" fi # 5. Перезапускаем сервер echo "🔄 Перезапускаем Rails сервер..." touch tmp/restart.txt echo "" echo "🎉 ГОТОВО! Теперь:" echo "1. Очисти кеш браузера (Cmd+Shift+Del / Ctrl+Shift+Del)" echo "2. Открой консоль (F12) и проверь ошибки" echo "3. Начни печатать в поиске"