【发布时间】:2016-03-03 12:46:49
【问题描述】:
每次我想打开 Rails 控制台时,我都已经厌倦了写这行代码:
irb(main):001:0> ActsAsTenant.current_tenant = User.find(1).account
有没有办法在每次“rails c”/“irb”调用之前运行命令/脚本?
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby irb
每次我想打开 Rails 控制台时,我都已经厌倦了写这行代码:
irb(main):001:0> ActsAsTenant.current_tenant = User.find(1).account
有没有办法在每次“rails c”/“irb”调用之前运行命令/脚本?
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby irb
我写了一个extended answer to this in another question,但简短的回答是,如果你是using Rails 3 or above,你可以使用 YourApp::Application 上的控制台方法来实现它:
module YourApp
class Application < Rails::Application
...
console do
ActsAsTenant.current_tenant = User.find(1).account
end
end
end
【讨论】:
你可以把你的设置代码放在一个 rb 文件中,例如:
foo.rb:
def irb_setup
ActsAsTenant.current_tenant = User.find(1).account
end
像这样启动 irb:
irb -r ./foo.rb
并调用方法(这将自动完成按标签)
2.3.0 :001 > init_irb
其实也许你可以直接放代码,不用任何方法,加载的时候就会执行。但我不确定这是否会起作用或与加载顺序混淆。
【讨论】:
IRB 在启动时自动执行~/.irbrc 和./.irbrc 文件。