#item
id="item" で div を作成します
.box#item
class="box" および id="item" で div を作成します
.box#="item "+x
class="box" とコメント '#="item"+x' で div を作成します
.box#
="item"+x
「不正な要素: クラスと ID には値が必要です。」をスローします。
ID を変数に設定するにはどうすればよいですか?
#item
id="item" で div を作成します
.box#item
class="box" および id="item" で div を作成します
.box#="item "+x
class="box" とコメント '#="item"+x' で div を作成します
.box#
="item"+x
「不正な要素: クラスと ID には値が必要です。」をスローします。
ID を変数に設定するにはどうすればよいですか?
次の 2 つの方法があります。
長い形式の方法 (通常の属性であるかのように id を定義します):
.box{:id => "item_#{x}"}
これを生成します(x
これまでにx.to_s
評価されたものです):
<div class="box" id="item_x">
短い形式の方法:
.box[x]
x
が のインスタンスであると仮定すると、次のようになりitem
ます。
<div class="box item" id="item_45">
詳細については、HAML リファレンスを参照してください。
id
とclass
を HAML で次の方法で設定できます。
通常の方法
.box.item#item
<div id="item" class="box item"></div>
補間が必要な場合は、この形式を使用できます
.box{id: "item_#{123}", class: "item_#{123}"}
<div id="item_123" class="box item_123"></div>
この形式は、オブジェクト参照を使用してクラスと ID を生成します
# app/controllers/items_controller.rb
@item = Item.find(123)
.box[@item]
<div id="item_123" class="box item"></div>
何かにプレフィックスを付ける必要がある場合
.box[@item, :custom]
<div id="custom_item_123" class="box custom_item"></div>
カスタム クラスと ID 生成が必要な場合は、次のメソッドをモデルに追加する必要があります。
class CrazyUser < ActiveRecord::Base
def haml_object_ref
"customized_item"
end
end
そして、カスタマイズされたクラスを取得します
.box[@item]
<div id="customized_item_123" class="box customized_item"></div>
参照: