打开rails控制台时初始化一些变量

时间:2013-09-01 00:01:55

标签: ruby-on-rails ruby-on-rails-3 rails-console

这就是事情。在我的应用程序中插入它们之前,我使用了很多控制台来测试我的方法(我猜这里没什么新东西)。

我觉得方便的是,我会加载一个console_seed.rb文件,然后我的所有变量都可以使用了。

例如:console_seed.rb

me = User.find(77)
other_person = User.find(89)

所以我可以立即测试:

me.add_friend(other_person)

打开控制台时,无需反复写入.find()行。

我发现了这篇文章:how can I run an initializer from the rails console?

load "#{Rails.root}/config/db/console_seed.rb"

哪个可以做到这一点,但不幸的是,文件中创建的变量与控制台不共享相同的上下文...

在这种情况下,rails magik会再次发生吗? :)

1 个答案:

答案 0 :(得分:0)

感谢@ dave-newton的建议,我通过.irbrc

找到了一个很好的解决方案

创建了~/.irbrc文件:

// when rails constole is started, go find the console_seed.rb - project specific - file
require Dir.pwd + "/db/console_seed.rb"
puts 'Config init'

App_Root_Path/db/console.seed.rb档案:

Me = User.find(77)
Other_person = User.find(89)

诀窍是MeOther_person必须是常量而不是变量,否则它们不会传递给控制台范围。但就我而言,拥有常量实际上是有意义的。否则,可以使用方法定义,但我还没有探索过这种可能性。

我唯一的挫败感仍然在于我的同伴需要创建自己的~/.irbrc文件以获得相同的行为,它不会自动包含在git范围内......有任何建议吗?是否每次初始化控制台时都会加载任何脚本?