#item
创建一个id =“item”的div
.box#item
创建一个div,其中class =“box”和id =“item”
.box#="item "+x
使用class =“box”和注释“#=”item“+ x”
创建一个div.box#
="item"+x
抛出“非法元素:类和ID必须具有值。”
如何将id设置为变量?
答案 0 :(得分:129)
有两种方法:
长格式方式(将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 reference。
答案 1 :(得分:5)
您可以通过以下方式在HAML中设置id
和class
正常方式
.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>
参考: