Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在打开rails控制台时初始化一些变量_Ruby On Rails_Ruby On Rails 3_Rails Console - Fatal编程技术网

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的建议。这里有一个灵感的例子(不是我的):