Rails多个开发人员环境
问题描述:
在我们公司,人们使用不同的操作系统。我使用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