Rails несколько сред разработки - PullRequest
1 голос
/ 17 мая 2011

В нашей компании люди используют разные операционные системы.Я использую Linux и у меня есть строка в development.rb , например:

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

Дизайнеру, который работает в Windows, нужна другая строка.Есть ли способ, как управлять разными разработчиками в ruby ​​на рельсах?Большое спасибо!

Ответы [ 2 ]

3 голосов
/ 17 мая 2011

Одно решение: создайте в конфигурации папку с именем «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 вместо обычной системы отправки электронной почты.

2 голосов
/ 17 мая 2011

Если это просто проблема с платформой, попробуйте что-то вроде этого:

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...