Ruby on rails 在打开rails控制台时初始化一些变量
事情是这样的。在将我的方法插入我的应用程序之前,我使用了很多控制台来测试我的方法(我想这里没有什么新东西) 我觉得方便的是,有一个Ruby on rails 在打开rails控制台时初始化一些变量,ruby-on-rails,ruby-on-rails-3,rails-console,Ruby On Rails,Ruby On Rails 3,Rails Console,事情是这样的。在将我的方法插入我的应用程序之前,我使用了很多控制台来测试我的方法(我想这里没有什么新东西) 我觉得方便的是,有一个console\u seed.rb文件可以加载,然后所有变量都可以使用了 例如:console\u seed.rb me = User.find(77) other_person = User.find(89) 因此,我可以立即测试: me.add_friend(other_person) 打开控制台时,无需反复写入.find()行 我发现这个帖子: 这会起作用,
console\u seed.rb
文件可以加载,然后所有变量都可以使用了
例如:console\u seed.rb
me = User.find(77)
other_person = User.find(89)
因此,我可以立即测试:
me.add_friend(other_person)
打开控制台时,无需反复写入.find()
行
我发现这个帖子:
这会起作用,但不幸的是,文件中创建的变量与控制台不共享相同的上下文
在这种情况下rails magik还会发生吗?:) 多亏了@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'
Me = User.find(77)
Other_person = User.find(89)
和App\u Root\u Path/db/console.seed.rb
文件:
// when rails constole is started, go find the console_seed.rb - project specific - file
require Dir.pwd + "/db/console_seed.rb"
puts 'Config init'
Me = User.find(77)
Other_person = User.find(89)
诀窍是Me
和Other_person
必须是常量而不是变量,否则它们不会传递到控制台范围。但在我的例子中,有常数是有意义的。否则,可以使用方法定义,但我还没有探讨这种可能性
我唯一的挫折是,我的团队成员需要创建自己的
~/.irbrc
文件才能获得相同的行为,它不会自动包含在git范围内。。。有什么建议吗?是否每次初始化控制台时都会加载任何脚本?我使用普通.pryrc加载的特定于项目的.pryrc并在那里进行初始化-我认为特定于控制台的初始化不属于应用程序初始化程序。您是否尝试过复制粘贴控制台中具有find等的行。,,这比重新输入要快得多。可以将复制粘贴扩展到两行以外。虽然这不能解决你的问题。。。这只是一遍又一遍地写它们的一种替代方法……我支持@DaveNewton的建议。这里有一个灵感的例子(不是我的):