我决定尝试使用.slim(超薄模板引擎),因为我不喜欢.erb,而且我也想花点时间学习一些从长远来看可能有用的东西。
由于我同时跟踪rails_tutorial,因此我来到使用yield(:title)
的部分
使用.erb,它看起来像这样:
<title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
使用.slim我设法让它看起来像:
title
=> yield(:title)
| | Ruby on Rails Tutorial Sample App
现在,我想要做的是能够在一行中输入它。那么有没有办法用.slim?
来做到这一点这是另一个我似乎无法创造一行的例子
a<> href="http://www.railstutorial.org/"
em Ruby on Rails Tutorial
可能下线我甚至不会做这样的事情但是在这一点上 为了更好地学习,我想了解一些关于.slim的建议。
为了防止出现更多这样的问题,另一个问题是,我在哪里可以找到详细的文档或教程,其中包含这些示例。
后续:
我将如何转换它:
<% flash.each do |message_type, message| %>
<div class="alert alert-<%= message_type %>">
<%= message%>
</div>
<% end %>
好的,我想我已经明白了:
- flash.each do |message_type, message|
.alert class="alert-#{message_type}"
= message
答案 0 :(得分:2)
标记后跟文本将输出该文本作为标记的内容。您可以在文本中使用字符串插值#{expression}
来输出变量。
带插值变量的内容文本:
title #{yield(:title)} | Ruby on Rails Tutorial Sample App
您还可以使用tag =
将标记的内容设置为ruby表达式。
title = yield(:title) + " | Ruby on Rails Tutorial Sample App"
请注意,在这种情况下,如果yield(:title)
返回nil
如果您有嵌套标签,则应将它们放在单独的行上。