Где я должен хранить ключ API в rails3?

Как лучше всего хранить/извлекать ключи API в rails3?

Должен ли я создать собственное приложение yaml и получить к нему доступ через него? Если да, то как?

Извините за нубский вопрос...


person kayluhb    schedule 12.11.2010    source источник


Ответы (1)


Для таких вещей я использую плагин settingslogic. Очень прост в использовании.

Добавьте settingslogic в ваши Gemfile и bundle install:

gem 'settingslogic'

Создайте каталог для своих настроек и поместите туда файл settingslogic yaml:

/my_app/config/settings/my_settings.yml

Вы можете включить настройки по умолчанию и настройки среды. Файл выглядит так:

defaults: &defaults
  api_key: abc123

development:
  <<: *defaults

test:
  <<: *defaults

production:
  <<: *defaults

Добавьте этот файл: app/models/my_settings.rb, запустите приложение, и все готово.

class MySettings < Settingslogic
  source "#{Rails.root}/config/settings/my_settings.yml"
  namespace Rails.env
end

Теперь вы можете вызывать эти настройки из любой точки приложения, например:

MySettings.api_key
person johnmcaliley    schedule 13.11.2010
comment
Я решил создать гем, похожий на settingslogic, но без необходимости добавлять класс MySettings. Подробнее здесь: cowboycoded.com/2011/04/08/ - person johnmcaliley; 08.06.2011
comment
Это здорово, спасибо! Я, вероятно, буду использовать его в моем следующем проекте. - person kayluhb; 15.06.2011