/ / Railsy 4.2.3 secret_key_base nie jest ustawione z secrets.yml dla środowisk programistycznych / testowych z poprawnie ustawionymi wszystkimi innymi zmiennymi - ruby-on-rails, ruby, ruby-rails-4, zmienne środowiskowe, środowisko programistyczne

Szyny 4.2.3 secret_key_base nie jest ustawione z secrets.yml dla środowisk programistycznych / testowych z poprawnie ustawionymi wszystkimi innymi zmiennymi - ruby-on-rails, ruby, ruby-rails-4, zmienne środowiskowe, środowisko programistyczne

Używam Rails 4.2.3 aplikacja działająca w produkcji po wdrożeniu i ze zmiennymi środowiskowymi ustawionymi przez Heroku. Jednak moje środowiska programistyczne i testowe nagle zaczęły nie działać z tym błędem:

DEPRECATION WARNING: You didn"t set `secret_key_base`. Read the upgrade documentation to learn more about this new config option. (called from service at /Users/Benjamin/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138)

Według wszystkiego, co znalazłem na StackOverflow i gdzie indziej, prawdopodobnie ma to coś wspólnego z moim plikiem secrets.yml:

rozwój: secret_key_base: LONG-KEY  test: secret_key_base: LONG-KEY

Próbowałem resetowania tych kluczy za pomocą

tajemnica rake
bezskutecznie. Mam inne zmienne środowiskowe ustawione w secrets.yml, które są poprawnie ustawione, ale po uruchomieniu Rails.application.secrets.secret_key_base z konsoli wciąż otrzymuję zero.

Każda pomoc byłaby bardzo cenna.

Odpowiedzi:

1 dla odpowiedzi № 1

Kiedy mówisz, że próbowałeś je zresetowaćrake secret, co masz na myśli? Skopiowałeś i wkleiłeś klucze z konsoli do secrets.yml w odpowiednie miejsca i zapisałeś? Tak długo, jak oba klawisze są w tym miejscu, mają co najmniej 30 znaków (powinny mieć 128 znaków w twoim przypadku, gdy użyłeś sekretu rake), powinieneś być cały zestaw. Zakładam, że twój plik secrets.yml znajduje się w config /.

Ponadto ostrzeżenie o wycofaniu jest ostrzeżeniem, a nie ostrzeżeniembłąd. Tak długo jak klucze są w secrets.yml, nie powinieneś robić nic innego. Uruchamianie sekretu prowizji i zastępowanie kluczy nowymi jest niepotrzebne, o ile masz tam klucze (co najmniej 30 znaków), nie ma znaczenia, jakie są klucze.

Mam nadzieję że to pomoże. Jeśli nadal masz problemy, opublikuj błąd środowiska wykonawczego i miejmy nadzieję, że pozwoli to lepiej zrozumieć, co jest nie tak.


1 dla odpowiedzi nr 2

To nie jest prawdopodobny problem, ale wydałem godziny w tej sprawie, która również dała mi to samokomunikat o błędzie "secret_key_base" nie został ustawiony dla uruchomienia serwera railsowego. Używam Railsów w wersji. 4.2.5.1, Ruby ver. 2.3.0, WEBrick 1.3.1, z serwerem rozwoju i produkcji działającym eksperymentalnie na systemie Linux CentOS 6.6. Mój błąd to kompletna sprawa dla początkujących ... Podążyłem za krokami, aby skonfigurować SECRET_BASE_KEY do produkcji i używam pliku secrets.yml, przy czym zmienna environment jest używana do ustawienia klucza, jak w przypadku dokumentów Rails i innych raportów Stackoverflow. Ale uruchamiałem mój serwer produkcyjny:

serwer bin / rails --binding = 0.0.0.0 -p 3000 -e = produkcja

co jest złe. Parametr "-e" w postaci krótkiej nie ma znaku równości. Ale otrzymałem błąd, ponieważ kod w pliku secrets.yml szukał czegoś zwanego "= production:", a etykieta to "production:". Prawidłowe wyrażenie uruchamiające serwer w trybie produkcyjnym to oczywiście:

serwer bin / rails --binding = 0.0.0.0 -p 3000 -e production

Inną wskazówką było to, że serwer zgłaszał, że "config.eager_load" został ustawiony na zero, podczas gdy w rzeczywistości został skonfigurowany do ustawienia w pliku ../config/environments/production.rb.

Mam nadzieję, że to pomaga komuś. Jestem kompletnym nowicjuszem w Rails + Ruby, ale w końcu mam serwer testowy działający w trybie produkcyjnym, z różnymi ustawieniami konfiguracji stosowanymi zgodnie z oczekiwaniami.