0

つまりね。私はかなり多くのコンソールを使用して、メソッドをアプリにプラグインする前にテストしています (ここでは新しいことは何もないと思います)。

私が便利だと思うのは、console_seed.rbロードするファイルのようにすると、すべての変数がすぐに使用できるようになることです。

元:console_seed.rb

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

だから私はすぐにテストすることができます:

me.add_friend(other_person)

コンソールを開くときに、何度も何度も.find()行を書く必要はありません。

この投稿を見つけました:レールコンソールから初期化子を実行するにはどうすればよいですか?

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

これでうまくいきますが、残念ながら、ファイルで作成された変数はコンソールと同じコンテキストを共有しません...

この状況で Rails Magic が再び発生する可能性はありますか? :)

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 に答える