在我們公司,人們使用不同的操作系統。我使用Linux和擁有線development.rb,如:Rails多個開發人員環境
Paperclip.options[:command_path] = "/usr/bin"
設計師,誰是在Windows上需要不同的線路。有沒有什麼辦法,如何管理紅寶石軌道上的不同開發人員?非常感謝!
在我們公司,人們使用不同的操作系統。我使用Linux和擁有線development.rb,如:Rails多個開發人員環境
Paperclip.options[:command_path] = "/usr/bin"
設計師,誰是在Windows上需要不同的線路。有沒有什麼辦法,如何管理紅寶石軌道上的不同開發人員?非常感謝!
如果它只是一個平臺的問題,嘗試這樣的事情:
if RUBY_PLATFORM =~ /mswin/
Paperclip.options[:command_path] = 'c://ruby/bin'
else
Paperclip.options[:command_path] = '/usr/bin'
end
一個很好的方法來保持特定機器的設置是一個配置文件。 對待像database.yml這樣的settings.yml,並將示例複製到每個用戶機器上的settings.yml中。
# .gitignore
config/settings.yml
# config/settings.yml.example
paperclip_command_path: /usr/bin
some_api_key: put_key_here
# config/initializers/load_settings.rb
filename = File.join(File.dirname(__FILE__), '..', 'settings.yml')
if File.file?(filename)
APP_CONFIG = YAML::load_file(filename)
APP_CONFIG.each do |k, v|
v.symbolize_keys! if v.respond_to?(:symbolize_keys!)
end
end
這種方式,你可以設置上述這樣的:
Paperclip.options[:command_path] = APP_CONFIG[:paperclip_command_path]
一個解決方案: 在config中創建一個名爲「personal」的文件夾,並在其中放置一個文件,其中的內容在您使用的任何源代碼管理系統中被設置爲忽略。然後在其中,每個開發人員可以設置自己的選項來覆蓋上述內容。爲了確保它不會哪一行首先得到評估,您可以將它像:
#in config/development.rb
Paperclip.options[:command_path] ||= "/usr/bin"
#in config/personal/overrides.rb
if RAILS_ENV == "development"
Paperclip.options[:command_path] = "/my/local/path"
end
現在,如果重寫先運行,在development.rb行不會將其覆蓋。
我在我的一個項目中做了類似的事情,用dev模式發送電子郵件,使用我自己的gmail賬戶而不是通常的電子郵件發送系統。
條件,應根據開發者的PC或環境嗎? – Bohdan 2011-05-17 12:36:44