Rails多个开发人员环境

问题描述:

在我们公司,人们使用不同的操作系统。我使用Linux和拥有线development.rb,如:Rails多个开发人员环境

Paperclip.options[:command_path] = "/usr/bin"

设计师,谁是在Windows上需要不同的线路。有没有什么办法,如何管理红宝石轨道上的不同开发人员?非常感谢!

+0

条件,应根据开发者的PC或环境吗? – Bohdan 2011-05-17 12:36:44

如果它只是一个平台的问题,尝试这样的事情:

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账户而不是通常的电子邮件发送系统。