2016-09-03 20 views
0

私は自分のRailsアプリケーションで使用したいRack Middlewareを作成しています。基本的には、特定のURLに一致するリクエストをデータベースに記録する必要があります。これを行うためには、ミドルウェアにデータベース設定を渡す必要がありますので、DBとの接続を確立することができます。私がやろうとしています: -複数の引数をRailsのミドルウェアに渡すapplication.rb

db_yml = Rails.root.join('config/database.yml') 
db_config = YAML.load(db_yml.read)[Rails.env] 

しかし、これはエラーに

のconfig/application.rb与えている:40:<class:Application>': undefined method読み取り」内を#(NoMethodError)

ため

をした場合私はbyebugを追加して、それをうまく動作させるbyebugコンソールで同じものを実行します。私は理由を見つけることができません。私は物事を次の操作を行いたい: -

  1. 私は、引数としての私のミドルウェアに渡す前に、データベースの設定を変更&読む必要があります。
  2. リクエストURLのドメインを読みたいと思います。我々はApartment gemを使用しており、私たちのスキーマ名はドメイン名になります。

私は複数の記事here & hereを追いました。 私はRailsの初心者であり、良いリソースを知らないので、助けてください。 ありがとうございます!

答えて

1

あなたが使用する必要があります。

db_yml = Rails.root.join('config/database.yml') 
db_config = YAML.load(File.open(db_yml))[Rails.env] 

Rails.root.join('config/database.yml')リターン文字列であるファイルパス。

+0

なぜ私のスニペットはbyebugコンソールで動作しますか?そして、application.rbのリクエストURLにどうやってアクセスできますか? – abhinav

関連する問題