Ich habe einige Konstanten, die ich in meiner App verwende. Ich würde sagen, es gibt drei Arten:Rails 4.2 Konstanten - wo sie zu setzen: application.yml vs benutzerdefinierte config file.rb
einige sind wirklich Passwörter externe Sachen wie sendgrid Login/Passwort
einige sind intern „Geheimcodes“ wie geheime ersinnen Schlüssel
Einige sind genau das, was ich globale Konstanten nennen würde, das heißt, dass es Konstanten gibt, die wir in der ganzen App verwenden und nicht wollen, dass irgendjemand dies leicht ändert. Sie ändern sich fast nie. Einige Beispiele: die ID unserer Facebook-Seite oder die Anzahl der Deals "pro Seite" definieren wir in unserem unendlichen Scrollen auf der Homepage (kritisch für UX), oder die URL unseres markenvalidierten Logos auf aws cdn (in vielen Anzeigen von Dateien html.erb und Assets javascript .js-Dateien). Ein Aspekt, an den ich mich auch bei der Beantwortung meiner Frage erinnere, ist, dass, selbst wenn sie weniger kritisch erscheinen als ein Devise-Schlüssel, ich gerne sammeln würde, um sicherzustellen, dass nur sehr wenige Menschen und nur autorisierte Entwickler diese kritischen Daten ändern können .
Hier ist, was wir heute tun:
Für 1 und 2: habe ich die Konstanten auf config/application.yml
Und für 3: Ich auf eine der Konstanten setzen Benutzerdefinierte .rb-Konfigurationsdatei wie im offiziellen Rails-Handbuch beschrieben (guides.rubyonrails.org/v4.2/configuring.html#custom-configuration) Beispiel: on /config/initializers/app_custom.rb
Rails.application.configure do config.x.infite_scrollhp_feed_per_page_deals = 30 end
dann wird es in einem Controller auf diese Weise genannt:
nb_per_page = Rails.configuration.x.infite_scrollhp_feed_per_page_deals
Aber jedes Mal, wenn ich nicht sicher bin, wenn ich globale Konstanten innerhalb config/application.yml oder in meiner benutzerdefinierten Config-Datei .rb setzen sollte ?
Was ist der empfohlene "Rails -way"? Wie kann ich entscheiden, wo ich sie hinstellen soll? Gibt es eine allgemein akzeptierte "Gut-Sinn"/"bewiesene effiziente/gut strukturierende" Praxis/Regel?
Auch gibt es eine andere Leistung, das heißt, Application.yml "injiziert" schneller in Ansicht (.html) und Assets (.js) -Dateien, wenn Benutzer eine Seite laden, als wenn sie in meiner benutzerdefinierten Konfiguration definiert sind Datei ?
dann in Ihrer Vision, was würde in config/application.yml bleiben? nichts? – Mathieu
übrigens, die Datei config/application.yml ist nicht in unserem Repo festgelegt, also was in application.yml bleibt "geheim" :-) – Mathieu
danke für deine Antwort, interessante Strategie. – Mathieu