0

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

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

前任:console_seed.rb

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

所以我可以立即测试:

me.add_friend(other_person)

打开控制台时,无需.find()一次又一次地编写行。

我找到了这篇文章:如何从 Rails 控制台运行初始化程序?

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

这可以解决问题,但不幸的是,文件中创建的变量与控制台不共享相同的上下文......

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

4

1 回答 1

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)

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

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

于 2013-09-01T14:42:26.513 回答