Ruby on Rails-Variablen, konstante Zusammenfassung
Ruby on Rails-Variablen, konstante Zusammenfassung
Wir haben die Variablen und Konstanten zusammengefasst, die häufig in Rails verwendet werden.
Voraussetzungen
--Variable
--Kann gewechselt werden
--Konstante
Variable
Lokale Variablen
- Nur innerhalb einer Methode oder eines Blocks gültig
- Variablennamen
- Unterer Schlangenkoffer
user_name = 'jon'
Nutzung in Schienen
- View
- Wenn View lokale Variablen verarbeiten soll, definieren Sie sie in der View-Datei.
[users/show.html.erb]
<% hoge = 'huga' %>
<div><%= hoge %><div>
- Controller
- Wenn Sie den Wert der Variablen nicht an View übergeben oder den Wert der Variablen in Contrller freigeben müssen, definieren Sie ihn in der lokalen Variablen.
def create
article = Article.find( params[:id])
return render_404 if article.blank?
end
Instanzvariable
--Variationen, die im selben Controller verwendet werden können
- Variablennamen
- Fügen Sie am Anfang
@
hinzu
Nutzung mit Schienen
- Übergeben Sie die in Controller Action definierte Instanzvariable an View.
def show
@user = User.find(params[:id])
end
[users/show.html.erb]
<div>BENUTZERIDENTIFIKATION:<%= @user.id %><div>
- Lokale Variablen können nicht übergeben werden
def show
user = User.find(params[:id])
end
[users/show.html.erb]
<div>BENUTZERIDENTIFIKATION:<%= user.id %><div>
-> Kann nicht referenziert werden
undefined local variable or method 'user'
Globale Variablen
- Alle Controller können verwendet werden
- Kann von überall im Programm geändert und referenziert werden
- Variablennamen
- Fügen Sie am Anfang
@
hinzu
Konstante
Nutzung mit Schienen
- Definieren Sie allgemeine Konstanten in [config / initializers / constants.rb]
- Kann in allen Controllern und Ansichten referenziert werden
[config/initializers/constants.rb]
MAX_SIZE = 10
- Um die in jedem Modell verwendeten Konstanten zu definieren, definieren Sie sie in der Klasse der Modelldatei.
[user.rb]
class User
OFFICIAL_ID = 100
end
Wenn Sie mit Controller oder View referenzieren, schreiben Sie "User :: OFFICIAL_ID"