Ein Memo darüber, wie man gemeinsame Variablen in Rails 5-Controllern definiert.
Es gibt mehrere Möglichkeiten, gemeinsame Variablen über Controller oder die gesamte App in Rails-Anwendungen zu definieren. Hier ist eine Zusammenfassung dieser Methoden und zugehörige Informationen.
-
Definition in ApplicationController:
class ApplicationController < ActionController::Base HASH_DATA = { value: "key" } endDiese Methode definiert eine Konstante, die für alle Controller und Aktionen verfügbar ist. Die Konstante
HASH_DATAwird in der gesamten Anwendung geteilt. -
Verwendung von
before_actioninnerhalb eines Controllers:class SomeController < ApplicationController before_action :set_admin def set_admin @listOfWords = ['a', 'b', 'c'] end endDiese Methode verwendet
before_action, um eine gemeinsame Variable (in diesem Fall@listOfWords) innerhalb eines bestimmten Controllers zu definieren. Diese Variable ist von allen Aktionen im Controller aus zugänglich. -
Definition einer Methode in ApplicationController:
class ApplicationController < ActionController::Base def common_variable @listOfWords = ['a', 'b', 'c'] end endDiese Methode fügt
ApplicationControllereine Methode hinzu, und Sie können gemeinsame Variablen setzen, indem Sie diese Methode in Controllern aufrufen. Dies ist eine flexible Möglichkeit, Variablen zu definieren, und Sie können diecommon_variable-Methode bei Bedarf in Controllern aufrufen.
Die Wahl zwischen diesen Methoden kann flexibel entsprechend den Anforderungen Ihrer Anwendung getroffen werden. Variablen müssen als Instanzvariablen (@variable) definiert werden. Solche Variablen sind in Views zugänglich, was sie praktisch für die Übergabe von Daten von Controllern an Views macht.