71 lines
2.8 KiB
Markdown
71 lines
2.8 KiB
Markdown
---
|
|
status: seed
|
|
type: guide
|
|
tags:
|
|
- programming
|
|
- ruby-on-rails
|
|
- debug
|
|
created: 2026-05-20
|
|
updated: 2026-05-20
|
|
title: Rails credentials edit не открывает редактор
|
|
source: "[[99 System/Archive/Rails credentials edit не открывает редактор|Rails credentials edit не открывает редактор]]"
|
|
---
|
|
|
|
# Rails credentials edit не открывает редактор
|
|
|
|
Заметка фиксирует кейс, когда `bin/rails credentials:edit` в [[Ruby On Rails]] завершается без открытия редактора и без явной ошибки.
|
|
|
|
## Симптом
|
|
|
|
Команда:
|
|
|
|
```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`.
|