vault backup: 2026-05-20 14:29:47
This commit is contained in:
Vendored
+5
-5
File diff suppressed because one or more lines are too long
+70
@@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
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`.
|
||||||
@@ -13,6 +13,7 @@ title: Ruby On Rails
|
|||||||
|
|
||||||
%% Begin Waypoint %%
|
%% Begin Waypoint %%
|
||||||
- [[Active Storage]]
|
- [[Active Storage]]
|
||||||
|
- [[Rails credentials edit не открывает редактор]]
|
||||||
- [[Sidekiq - основа работы]]
|
- [[Sidekiq - основа работы]]
|
||||||
|
|
||||||
%% End Waypoint %%
|
%% End Waypoint %%
|
||||||
|
|||||||
Reference in New Issue
Block a user