2014-11-17 2 views
1

В зависимости от того, над чем я работаю, я обычно определяю переменные (например, f = Foo.last) при открытии rails console.Автоматическое определение переменной в консоли Rails

Есть ли способ сделать это автоматически в моей среде разработки?

Для чего это стоит, я использую pry.

Я могу это сделать, но сессия будет выходить:

$ rails c <<EOF 
heredoc> f = Foo.last 
heredoc> EOF 

ответ

3

Если вы хорошо с переменными экземпляра, вы можете добавить их к ~/.pryrc

@f = Foo.last 

С локальных переменных этого выиграл» т, потому что они локальны по своему охвату (отсюда и название).

Что я делаю сам, есть все команды «setup» в отдельном текстовом файле. Затем в новой консоли рельсов я просто вставляю ее.

  • не придется повторно вводить одни и те же определения, с каждой консоли рестарта
  • Отсутствие загрязнения в глобальном конфигурационном файле
  • Локальные переменные с хорошими короткими именами (то есть, без @)
+0

Ницца, это, вероятно, достаточно близко. Одна поправка, которую я сделал бы, это то, что pry берет '.pryrc' в моем репозитории Rails, который предпочтительнее' ~/.pryrc' для меня. Благодарю. –

+0

Отлично, просто 'c = Codebase.last' работает в' .pryrc'. –

+0

@ErikNomitch: Хм, какая у вас версия pry? Mine не берет локальный '.pryrc' и не экспортирует локальные переменные из глобального. –

3

в качестве альтернативы предложению Серджио переменных экземпляра, вы можете также определить методы в .pryrc:

def f 
    @_f ||= Foo.last 
end 

Я не уверен, что у вас есть вся семантика, которую вы хотите, но она работает для меня.

+0

Спасибо, '--exec' будет идеально, но так как мне нужно запустить pry через' rails console', я не уверен, как его передать. Я использую драгоценный камень «pry-rails». –

+0

На самом деле я говорил, что вы * можете * определять переменные экземпляра, потому что местные жители не будут работать. :) –

+0

Правильно, @SergioTulentsev. Я обновил свой ответ. –

Смежные вопросы