2016-09-26 9 views
0

ActiveRecordをIRBセッションにロードするにはどうすればよいですか?IRBでActiveRecordを要求する - Ruby(NO Rails)

私は

# config/app.rb 
require 'active_record' 

ActiveRecord::Base.establish_connection(
    adapter: 'sqlite3', 
    database: 'db/mydb.sqlite3' 
) 

を以下している。しかし、私はIRBを開始し、それを

irb#1(main):001:0> require config/application.rb 

をロードしようとしたとき、私は私が対話できるようにしたいと思い

NameError: undefined local variable or method `config' for main:Object 
Did you mean? conf 

を取得IRBからの私のActiveRecordオブジェクトで。 私はRailsを使用せず、ActiveRecordだけを使用しています。

おかげで、ここで変更する

答えて

5

2つのこと:

  1. は常にあなたが必要としているパスの前後に引用符を置きます。 Rubyが "未定義のローカル変数またはメソッド"と言っている理由は、変数名としてconfigを解釈しようとしていることです。名前を引用符で囲むと、引用符で囲まれません。
  2. アプリケーションの一部であるファイルをロードするときは、require_relativeを使用してください。 requireは、デフォルトのRubyロードパスのみを調べます。

はこれを試してみてください:

require_relative 'config/application.rb' 
0

あなたは、コマンドラインから起動したコンソールを構築するためにpryを使用することができます。下記のシンプルなコンソールソリューション。この方法では、インタラクティブなセッションを見るたびにirbを要求する必要はありません。

# bin/console 
#!/usr/bin/env ruby 
require_relative '../config/app.rb' 
require 'pry' 
binding.pry 

てこhttps://github.com/pry/pry

P.S.の詳細あなたは、その後、あなただけの

$ bin/console 

を呼び出し、設定/ app.rbと対話セッション準備ができてから、すべてのコードの実行を取得

$ chmod +x bin/console 

すなわち

、ビン/コンソール上のx +設定する必要があります。 irbから作業を開始するために何も要求する必要はありません。

貧弱な男のレールコンソールequiv。 :-)

関連する問題