Wenn ich mich nicht irre, können Sie globale Einstellungen nicht über die Rails-Konsole ändern; Sie können jedoch Site-Einstellungen über die Konsole ändern:
Ein einfaches Beispiel zum Ändern einer Site-Einstellung:
pry(main)> SiteSetting.site_description
=> "My Cool Site"
pry(main)> SiteSetting.site_description = "My Great Discourse Site"
=> "My Great Discourse Site"
pry(main)> SiteSetting.site_description
=> "My Great Discourse Site"
Ein spezifisches Beispiel, das globale Einstellungen mit Site-Einstellungen vergleicht:
pry(main)> GlobalSetting.force_https
=> true
pry(main)> SiteSetting.force_https = false
false
pry(main)> SiteSetting.force_https
=> false
pry(main)> SiteSetting.force_https = true
=> true
pry(main)> GlobalSetting.force_https
=> true
pry(main)> GlobalSetting.force_https = false
NoMethodError: undefined method `force_https=' for GlobalSetting:Class
Did you mean? force_https
from (pry):61:in `__pry__'
pry(main)> GlobalSetting.force_https = true
NoMethodError: undefined method `force_https=' for GlobalSetting:Class
Did you mean? force_https
from (pry):62:in `__pry__'
Als ich diese Art von Tests in der Rails-Konsole durchführte, kam ich zu dem Schluss, dass globale Einstellungen in der Anwendung nicht geändert werden können, nachdem die Anwendung erstellt wurde. Site-Einstellungen können jedoch in der App geändert werden, nachdem sie erstellt und ausgeführt wird.
Beispielsweise werden die E-Mail-Adressen der Entwickler in der Container-YML-Datei festgelegt, und dieser Wert kann in der App nicht geändert werden, was der Site eine zusätzliche Sicherheitsebene verleiht.
In einigen Fällen sehen wir, dass eine globale Einstellung einer Site-Einstellung zugewiesen wird und dann die Site-Einstellung in der App verwendet wird, sodass sie geändert werden kann. Wenn jedoch die globale Einstellung in der App verwendet wird, kann dieser Wert nicht geändert werden (oder so scheint es zumindest während der Tests).
Dies scheint basierend auf meinen begrenzten Tests einer der grundlegenden Unterschiede zwischen globalen Einstellungen und Site-Einstellungen zu sein.
Ich denke, dies ist der zugrunde liegende Grund, warum @eextra bei dem Versuch, GlobalSetting.use_s3? true zu setzen, feststellte, dass es nicht wie erwartet funktionierte:
pry(main)> GlobalSetting.use_s3?
=> false
pry(main)> GlobalSetting.use_s3 = true
NoMethodError: undefined method `use_s3=' for GlobalSetting:Class
Did you mean? use_s3?
from (pry):8:in `__pry__'