Как запустить скрипт перед каждым вызовом консоли Rails?


Я довольно устал писать эту строку каждый раз, когда я хочу открыть консоль Rails:

irb(main):001:0> ActsAsTenant.current_tenant = User.find(1).account

Есть ли способ запустить команду / скрипт перед каждым вызовом"rails c"/" irb"?

Заранее спасибо!

3 4

3 ответа:

Поместите код, который вы хотите выполнить, в файл .irbrc в корневой папке вашего проекта:

echo 'ActsAsTenant.current_tenant = User.find(1).account' >> .irbrc
bundle exec rails c # ⇐ the code in .irbrc got executed

Sidenote : использовать Pry вместо глупого IRB. Попробуйте, и вы никогда не откатитесь назад.

Вы можете поместить свой установочный код в файл rb, например:

Фу.РБ:

def irb_setup
    ActsAsTenant.current_tenant = User.find(1).account
end

Запустите irb следующим образом:

irb -r ./foo.rb 

И вызывать метод (который будет автозаполнение нажатием клавиши Tab)

2.3.0 :001 > init_irb

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

Я написал расширенный ответ на этот вопрос в другом вопросе , но короткий ответ заключается в том, что если вы используете Rails 3 или выше , Вы можете использовать консольный метод в вашем приложении::, чтобы это произошло:

module YourApp
  class Application < Rails::Application
    ...

    console do
      ActsAsTenant.current_tenant = User.find(1).account
    end
  end
end