Własne konfiguracje w Rails

Posted by Jarosław Zabiełło Sun, 24 Dec 2006 01:51:00 GMT

W Rails domyślnym miejscem do ustawienia swoich dodatkowych konfiguracji jest plik conf/environment.rb. Jednak wygodniejszym sposobem jest użycie formatu YAML. Np. załóżmy, że pliku config/defaults.yml mamy następujące ustawienia:

default: &defaults
  paging: 10

development:
  show_debugs: true
  paging: 20
  <<: *defaults

production:
  show_debugs: false
  <<: *defaults

Wykorzystałem tu zasadę DRY (unikania powtarzania kodu) stąd sekcja ‘default’ która zawiera wspólne ustawienia dla Railsów pracujących zarówno w trybie roboczym (developerskim) jak i produkcyjnym. Aby ten plik był wciągany i to zgodnie z bieżącym trybem pracy Railsów, do pliku config/environment.rb należy dodać:

require 'ostruct'
yml = YAML.load_file RAILS_ROOT + '/config/defaults.yml'
$defaults = OpenStruct.new(yml).send RAILS_ENV

Do naszej aplikacji RoR zostanie dodana zmienna globalna $defaults, W wypadku pracy w trybie produkcyjnym, zmienna $defaults zawiera hasz z wartościami:

{"paging"=>10, "show_debugs"=>false}

Zamiast użycia zmiennej globalnej, można użyć

::AppConfig = OpenStruct.new(yml).send RAILS_ENV

dzięki temu mamy dostęp do poszczególnych parametrów za pomocą notacji kropkowej:

puts AppConfig.paging # => 10

Posted in  | Tags  | no comments

Comments

(leave url/email »)

   Comment Markup Help Preview comment