#item
erstellt ein div mit id = "item"
.box#item
erstellt ein div mit class = "box" und id = "item"
.box#="item "+x
erstellt ein div mit class = "box" und einem Kommentar '# = "item" + x'
.box#
="item"+x
löst "Unzulässiges Element: Klassen und IDs müssen Werte haben."
Wie kann ich die ID auf eine Variable setzen?
ruby-on-rails
haml
user225643
quelle
quelle
.box["item" + s]
und Varianten ohne Erfolg. Ist diese Verknüpfung mit eckigen Klammern nur mit Variablen kompatibel?Sie können das
id
undclass
in HAML folgendermaßen einstellenDer normale Weg
.box.item#item
<div id="item" class="box item"></div>
Wenn Sie interpolieren müssen, können Sie dieses Format verwenden
.box{id: "item_#{123}", class: "item_#{123}"}
<div id="item_123" class="box item_123"></div>
Dieses Format generiert die Klasse und die ID unter Verwendung der Objektreferenz
# app/controllers/items_controller.rb @item = Item.find(123)
.box[@item]
<div id="item_123" class="box item"></div>
Wenn Sie etwas voranstellen müssen
.box[@item, :custom]
<div id="custom_item_123" class="box custom_item"></div>
Wenn Sie eine benutzerdefinierte Klassen- und ID-Generierung benötigen, müssen Sie dem Modell die folgende Methode hinzufügen.
class CrazyUser < ActiveRecord::Base def haml_object_ref "customized_item" end end
Und dann erhalten Sie die angepasste Klasse
.box[@item]
<div id="customized_item_123" class="box customized_item"></div>
Verweisen:
quelle