Dmy*_*sin 12 haml ruby-on-rails-3
我开始学习HAML:我无法将Flash块转换为HAML:
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>">
<button type="button" class="close" data-dismiss="alert">×</button>
<strong><%= value %></strong>
</div>
<% end %>
Run Code Online (Sandbox Code Playgroud)
And*_*rew 17
干得好:
= flash.each do |key, value|
.alert{ :class => "alert-#{key}" }
%button.close{ :data => { :dismiss => "alert" } } x
%strong
= value
Run Code Online (Sandbox Code Playgroud)
仅供参考,您可以通过在声明后将它们作为哈希附加到任何元素来添加属性.如果您没有指定元素,只是一个类或ID,HAML会使该元素成为具有给定类或ID的div.但你可以做很多这样的事情.例如,这些都是一样的:
%div{:class => 'foo bar', :id => 'test' }
.foo{:class => 'bar', :id => 'test'}
#test.bar{:class => 'foo'}
#test.foo.bar
Run Code Online (Sandbox Code Playgroud)
所有输出: <div class="foo bar" id="test"></div>
您需要将计算属性放在哈希中,即:
- klass = "bar"
%div{ :class => klass }
Run Code Online (Sandbox Code Playgroud)
输出: <div class="bar"></div>
另请注意,在上面的所有示例中,:attribute => 'value'可以表示为attribute: 'value',例如:
%button.close{ data: { dismiss: 'alert' } } x
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.