如何在rails控制台启动时运行一些代码,有点像rc文件?

pix*_*rth 9 console ruby-on-rails

有没有办法执行一些仅在控制台启动时运行的代码?有点像一个RC文件(.bashrc,.zshrc,等)?我发现自己总是做很多事情.

例如,我会把它放在哪里

u = User.find_by_username('my_console_user')
Run Code Online (Sandbox Code Playgroud)

u是可用的rails console吗?

我已经诉诸于此,使用了$全局变量声明,并使用了晦涩难懂console do.我认为有些东西更优雅......

  class Application < Rails::Application
    #this is only executed in the console, also doens't seem to be documented anywhere but here: https://github.com/rails/rails/pull/3139
    console do
      $u1 = User.find_by_username('user1')
      $u2  = User.find_by_username('user2')
    end

  end
Run Code Online (Sandbox Code Playgroud)

Jua*_*tas 4

如果使用irb,只需添加一个方法~/.irbrc(如果不存在则创建一个):

def find_by_username(username)
  User.find_by_username('my_console_user')
end
Run Code Online (Sandbox Code Playgroud)

~/.pryrc或者如果您使用的话添加到pry-rails.

希望这可以帮助!