2011-07-24 14 views
1

これはPadrinoプロジェクトです。何らかの理由で私はテスト環境ではなく開発環境に2番目のデータベースをロードしています。これはおそらく私のプロジェクトに特有のものであり、誰も助けることはできないでしょう...しかし、私は本当に立ち往生しています! :)複数のデータベースが開発環境で動作していますが、テストではありません

mongoid.ymlでロード

defaults: &defaults 
    host: localhost 
    port: 27017 
    max_retries_on_connection_failure: 2 
    databases: 
    seeds: 
     database: seeds_db 
     host: localhost 
     port: 27018 

development: 
    <<: *defaults 
    database: db_development 

test: 
    <<: *defaults 
    database: db_test 

Mongoid.load!(File.dirname(__FILE__) + '/mongoid.yml') 

マイrspec_helper:

PADRINO_ENV = 'test' unless defined?(PADRINO_ENV) 
require File.dirname(__FILE__) + "/../config/boot.rb" 
RSpec.configure do |conf| 
    conf.include Rack::Test::Methods 
end 

マイboot.rb:

PADRINO_ENV = ENV["PADRINO_ENV"] ||= ENV["RACK_ENV"] ||= "development" unless defined?(PADRINO_ENV) 

PADRINO_ROOT = File.expand_path('../..', __FILE__) unless defined?(PADRINO_ROOT) 

require 'rubygems' unless defined?(Gem) 
require 'bundler' 
Bundler.setup 
Bundler.require(PADRINO_ENV, :default) 

require 'redis' unless defined?(Redis) 
require 'padrino' unless defined?(Padrino) 
require 'mongoid' unless defined?(Mongoid) 

Dir.glob(File.join(PADRINO_ROOT, 'config/initializers', "*.rb")){ |file| require file} 
Dir.glob(File.join(PADRINO_ROOT, 'config/constants', "*.rb")){ |file| require file} 

Padrino.before_load do 
end 

Padrino.after_load do 
    Card.load! 
    Position.load! 
end 

Padrino.load! 

しかし私は私のプロジェクトをPadrinoに移植した後では機能しません。私はその理由を説明している文書で何も見つけることができません。

答えて

2

がトラブル。 だからboot.rbにPADRINO_ENVにRACK_ENVを定義する行を追加します。あなたはこれを見つけたところ

PADRINO_ENV = ENV["PADRINO_ENV"] ||= ENV["RACK_ENV"] ||= "development" unless defined?(PADRINO_ENV) 
ENV["RACK_ENV"] = PADRINO_ENV 
0

私は誰かが自分のmongoid.ymlをロードgithubの上でこの方法を発見し、これは動作するようです:RSpecのはENV [ "RACK_ENV"]、代わりにPADRINO_ENVを使用することを

config_file = Padrino.root("config", "mongoid.yml") 
if File.exists?(config_file) 
    settings = YAML.load(ERB.new(File.read(config_file)).result)[Padrino.env.to_s] 
    ::Mongoid.from_hash(settings) if settings.present? 
end 
+0

あなたは覚えていることはできますか?私は同じ問題を抱えていますが、私はSinatraを使用しています。 –

関連する問題