2011-06-18 1 views
1

私はMichael HartlのRoR toturialに従っています。彼はIRBを使用する場所が複数あり、多くの場合ユーザーをデータベースに追加しています。 rails consoleを使用してIRBを開き、データベースにユーザーを作成すると、すべて正常に動作しますが、私のアプリケーションのディレクトリにあるtest.rbのようなファイルから同じ行のコードを実行して同じことをしようとすると、それはユーザーモデルを見つけることができないと言います。 IRBからではなく.rbファイルからこれらのコード行を実行する方法はありますか?Rails - IRBは必要ですか?

+1

ような何かを行うことができますが... –

+0

が、私はそれをどのように行うのですか? IRBは自動的にそれを行いますが、IRBを使用していない場合はどのような構文を使用しますか?そのアプローチのために – Kvass

答えて

4

別のスクリプトについては、rails runnerを参照してください。 Railsバックエンドをロードするので、すべてのモデルにアクセスでき、この目的のために存在します。 "Ruby on Rails Guides" から

ランナーは、非対話的にレールのコンテキストでRubyのコードを実行します。例えば:

$レールが「Model.long_running_method」ランナー

0

あなただけのコンソールコマンド保存し、再実行しする利便性test.rbを使用している場合は、あなたがこれを行うことができます:

rails console < test.rb 

あるいは、ハックのビットとして、あなたのtest.rbの上部にこれを置く:

require 'config/environment' 

と起動

ruby -I . test.rb 
+0

と言っています。 "Switch to inspect mode。"終了します。 – Kvass

+0

'rails console

0

Rubyファイルをアプリケーションのフォルダに配置しても、Railsアプリケーションが自動的にロードされるわけではありません。 Railsアプリケーションをロードするには、config/environment.rbファイルを明示的にロードする必要があります。

あなたtest.rbアプリのルートにある場合、あなたはあなたが環境をロードする必要が

require File.expand_path("../config/environment", __FILE__) 
# Access your models here 
関連する問題