2012-05-05 4 views
56

Я использую консоль в Ruby on Rails 3.1.1, и я нахожу ее историю команд (стрелка вверх), чтобы быть действительно flaky. Я провел команды p = Product.by_name 'Acme' и p.add_search_term('Snipe') несколько раз сегодня, через несколько сеансов консоли.Могу ли я получить консоль Ruby on Rails, чтобы помнить историю команд, ммм, лучше?

Однако, когда я перезагружаю консоль Ruby on Rails, в моей истории команд отображается только первая, а не вторая. Иногда они оба присутствуют в истории после перезагрузки консоли. Кроме того, я вижу команды в моей истории, которые происходят несколько дней назад после нажатия стрелки только несколько раз. Есть ли какая-то конфигурация, которую мне нужно изменить или это ошибка?

  • Рубин на Rails 3.1.1`
  • Рубин 1.9.2p290`
  • Ubuntu 11.10`
+1

Является ли эта проблема только с несколькими консолями? Это, несомненно, приведет к неожиданной истории. –

+0

@AndrewMarshall nope, это всегда консоль разработчика, которую я открываю в том же окне с тем же сценарием оболочки. – jcollum

+0

Является ли проблема Rails конкретным, или вы получаете то же самое на простом irb? Связанный с этим вопрос для no-Rails: http://stackoverflow.com/questions/2065923/irb-history-not-working –

ответ

124

От How To – Persist Rails or IRB Console Command History After Exit.

Создать или изменить файл ~/.irbrc включать:

require 'irb/ext/save-history' 
IRB.conf[:SAVE_HISTORY] = 200 
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-history" 
+5

Хотелось бы, чтобы вы положили решение (все три его строки) в ответ, если связь когда-нибудь исчезнет. – Ovesh

+1

@Ovesh хорошая идея, отредактирована. – ctcherry

+4

Обратите внимание, что у RVM есть встроенный irbrc, который добавляет нам историю: именно поэтому он работал на моей локальной машине, но не на сервере, даже без '~/.irbrc'. –