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
<<: *defaultsWykorzystał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_ENVDo 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_ENVdzięki temu mamy dostęp do poszczególnych parametrów za pomocą notacji kropkowej:
puts AppConfig.paging # => 10

Kanały IRC![[Dilber w Onecie]](/images/larry.png)

