在我们公司,人们使用不同的操作系统。我正在使用Linux并且在 development.rb 中排队:
Paperclip.options[:command_path] = "/usr/bin"
Windows上的设计师需要不同的产品线。有没有办法,如何在轨道上管理ruby中的不同开发人员?非常感谢!
答案 0 :(得分:3)
一个解决方案: 在配置中创建一个名为“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中的行不会覆盖它。
我在我的一个项目中做了类似的事情,使用我拥有的gmail帐户而不是通常的电子邮件发送系统,以开发模式发送电子邮件。
答案 1 :(得分:2)
如果这只是一个平台问题,请尝试以下方法:
if RUBY_PLATFORM =~ /mswin/
Paperclip.options[:command_path] = 'c://ruby/bin'
else
Paperclip.options[:command_path] = '/usr/bin'
end
保持机器特定设置的一种好方法是使用配置文件。 将settings.yml视为database.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]