2013-09-01 86 views
0

這是事情。我用相當多的控制檯來測試我的方法,然後將它們插入我的應用程序中(我猜這裏沒有新東西)。打開導軌控制檯時初始化一些變量

我會發現方便,將有像我會加載的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" 

它會做的伎倆,但遺憾的是,在該文件中創建的變量不共享相同的上下文控制檯...

莫非軌magik在這種情況下再次發生? :)

+1

我使用普通.pryrc加載的項目特定的.pryrc,並在那裏進行初始化 - 我不認爲控制檯特定的inits屬於應用程序初始化程序。 –

+0

您是否嘗試過在控制檯中粘貼粘貼這些行的選項等等,這比重新鍵入它們要快。您可以將複製粘貼擴展到兩行以上。雖然這不能解決你的問題......這只是一次又一次地寫出它們的替代方案。 – boddhisattva

+0

I second @ DaveNewton的建議。這裏有一個靈感的例子(不是我的):https://github.com/danielbayerlein/dotfiles/blob/master/.pryrc –

回答

0

感謝@戴夫牛頓的建議,我發現通過.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範圍內......對此有何建議?每次控制檯初始化時,是否都沒有加載腳本?