10

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

例如,我会把这个放在哪里

u = User.find_by_username('my_console_user')

所以这u是可用的rails console

我已经诉诸于此,使用$as 全局变量声明,以及使用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
4

1 回答 1

4

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

def find_by_username(username)
  User.find_by_username('my_console_user')
end

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

希望这可以帮助!

于 2015-07-20T17:29:21.713 回答