首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在每次调用Rails控制台之前运行脚本?

如何在每次调用Rails控制台之前运行脚本?
EN

Stack Overflow用户
提问于 2016-03-03 12:46:49
回答 3查看 1.2K关注 0票数 5

每当我想打开Rails控制台时,我都厌倦了写这行:

代码语言:javascript
运行
复制
irb(main):001:0> ActsAsTenant.current_tenant = User.find(1).account

在每次"rails c"/"irb“调用之前是否有任何方法运行命令/脚本?

提前感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-03 14:05:51

将要执行的代码放入项目根文件夹中的.irbrc文件中:

代码语言:javascript
运行
复制
echo 'ActsAsTenant.current_tenant = User.find(1).account' >> .irbrc
bundle exec rails c # ⇐ the code in .irbrc got executed

Sidenote:使用Pry而不是愚蠢的IRB。试一试,你就永远不会后退了。

票数 4
EN

Stack Overflow用户

发布于 2018-07-20 15:32:14

我写了一个在另一个问题中扩展了对这个问题的回答,但简单的回答是,如果您是使用Rails 3或以上,可以在YourApp::Application上使用控制台方法来实现:

代码语言:javascript
运行
复制
module YourApp
  class Application < Rails::Application
    ...

    console do
      ActsAsTenant.current_tenant = User.find(1).account
    end
  end
end
票数 3
EN

Stack Overflow用户

发布于 2016-03-03 13:20:19

您可以将安装代码放在rb文件中,例如:

foo.rb:

代码语言:javascript
运行
复制
def irb_setup
    ActsAsTenant.current_tenant = User.find(1).account
end

像这样启动irb:

代码语言:javascript
运行
复制
irb -r ./foo.rb 

并调用该方法(这将自动完成按下选项卡)

代码语言:javascript
运行
复制
2.3.0 :001 > init_irb

实际上,您可以直接放置代码,而不需要任何方法,并且在加载代码时会执行它。但我不确定这样做会不会奏效,还是会扰乱装货顺序。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35772589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档