更好的辦法,我結束了很多特定環境下的初始化,例如我carrierwave.rb
:在我目前Rails項目組織Rails的初始化
對於開發我使用類似:
CarrierWave.configure do |config|
config.cache_dir = Rails.root.join('tmp', 'carrierwave')
config.storage = :file
end
對於生產我使用S3通過fog
:
CarrierWave.configure do |config|
config.cache_dir = Rails.root.join('tmp', 'carrierwave')
config.storage = :fog
config.fog_public = false
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: '...',
aws_secret_access_key: '...'
}
end
我不想使用Rails.env.development?
調用大量與T之間切換他配置,並且我不想將這個初始化器存儲在我的environment/*.rb
文件中。有沒有辦法,例如爲initializers
目錄下的每個環境創建一個目錄?
initializers
├── development
│ └── carrierwave.rb
├── production
│ └── carrierwave.rb
└── test
└── carrierwave.rb
的問題根據Rails的嚮導是以下幾點:
您可以使用子文件夾來組織你的初始化,如果你喜歡,因爲Rails會看到從初始化整個文件層級文件夾下來。