Files
SecondBrain/90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md
T
2026-05-31 10:18:48 +03:00

72 lines
2.8 KiB
Markdown

---
status: seed
type: guide
tags:
- programming
- ruby-on-rails
- debug
created: 2026-05-20
updated: 2026-05-20
source: '[[99 System/Archive/Rails credentials edit не открывает редактор|Rails credentials
edit не открывает редактор]]'
aliases:
- Rails credentials edit не открывает редактор
---
# Rails credentials edit не открывает редактор
Заметка фиксирует кейс, когда `bin/rails credentials:edit` в [[Ruby On Rails - MOC]] завершается без открытия редактора и без явной ошибки.
## Симптом
Команда:
```bash
bin/rails credentials:edit
```
сразу печатает:
```text
File encrypted and saved.
```
При этом редактор не открывается, а credentials фактически не меняются.
## Причина
Rails 7.x выбирает редактор через helper `rails/command/helpers/editor.rb` и берёт `$VISUAL` приоритетнее `$EDITOR`.
Если переменная окружения `$VISUAL` установлена, например в `zed` или `code`, значение `$EDITOR` игнорируется. Если указанный в `$VISUAL` редактор не найден или не может быть запущен, системный вызов завершается с ошибкой, но Rails может молча продолжить выполнение и сохранить файл без изменений.
Связанный контекст: [[Environment Variables]] и [[Command Path]].
## Решение
На один запуск явно сбросить `$VISUAL` и задать рабочий редактор:
```bash
VISUAL="" EDITOR="nano" bin/rails credentials:edit
```
Можно заменить `nano` на любой редактор, который доступен в текущем окружении.
## Диагностика
Проверить, не установлен ли `$VISUAL`:
```bash
echo "VISUAL='$VISUAL'"
```
Проверить, находится ли редактор в `PATH`:
```bash
which nano
```
Если используется GUI-редактор вроде `code` или `zed`, отдельно проверить, что его CLI-команда доступна из той же shell-сессии, где запускается Rails.
## Практический вывод
Для `credentials:edit` важен не только `$EDITOR`, но и `$VISUAL`. Если Rails ведёт себя так, будто файл был сохранён без редактирования, сначала проверить переменные окружения редактора и доступность команды редактора через `PATH`.