Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 带有Ruby-HAML的空属性_Ruby On Rails_Ruby_Haml - Fatal编程技术网

Ruby on rails 带有Ruby-HAML的空属性

Ruby on rails 带有Ruby-HAML的空属性,ruby-on-rails,ruby,haml,Ruby On Rails,Ruby,Haml,我正在使用HAML在Ruby项目上实现模式微格式,但不知道如何在标记上设置空属性。我尝试了nil和false,但它们根本没有显示出来 示例: 我试图设置一个空的itemscope属性 @StrangeElement从注释中添加的代码: 我的代码: .agency.premium{:itemscope => true, :itemtype => 'schema.org/ProfessionalService';} :itemscope=>true似乎是HAML文档中推荐的方法。我得

我正在使用HAML在Ruby项目上实现模式微格式,但不知道如何在标记上设置空属性。我尝试了nil和false,但它们根本没有显示出来

示例:

我试图设置一个空的itemscope属性

@StrangeElement从注释中添加的代码: 我的代码:

.agency.premium{:itemscope => true, :itemtype => 'schema.org/ProfessionalService';} 
:itemscope=>true
似乎是HAML文档中推荐的方法。我得到的结果与使用
:itemscope=>''
得到的结果相同,这是一个带有空值的XHTML有效属性(即

也许可以,但我更希望它是空的,就像Schema文档中记录的那样

%div{:itemscope => true}
是在Haml文件中指定此项的正确方法

渲染方式取决于如何设置Haml。haml3.1中的默认值是
xhtml
,使用它将呈现为
itemprop='itemprop'
,这是有效的xhtml。要使用最小化属性(如
)进行渲染,需要将格式设置为
html4
html5
。(在Rails 3中,默认值是
html5
,在Haml 4.0中,默认值是
html5

如何设置Haml选项取决于您如何使用它,请参阅

例如,在Ruby中直接使用Haml,这:

engine = Haml::Engine.new '%div{:itemscope => true}'
puts engine.render
生成具有完整属性的默认xhtml:

<div itemscope='itemscope'></div>
<div itemscope></div>
使用最小化的属性生成所需的结果:

<div itemscope='itemscope'></div>
<div itemscope></div>

如果有人对如何用这种方式输入更多的单词感兴趣,他可以使用
“foo bar”=>true

%option{ "disabled selected value" => true } Choose an option
结果是:

<option disabled="" selected="" value="">Choose an option</option>
选择一个选项

并按预期工作。

接受的答案可以工作,但它会生成一个带有值的HTML属性

如果希望属性仅在HTML上输出,而不输出值,则可以使用:


你能粘贴你的Haml代码吗?你试过空字符串吗<代码>%span{:itemscope=>''}我的代码:.agency.premium{:itemscope=>true,:itemtype=>''}.:itemscope=>true似乎是HAML文档中推荐的方法。我得到的结果与使用itemscope=>''得到的结果相同,这是一个具有空值(即)的XHTML有效属性。也许可以,但我希望它像schemadoc中记录的那样是空的。在你的帖子中,用`(backtick)字符包装你的标记,这样它就可以被看到。