2014-10-16 55 views
2

我决定试用.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 

回答

2

的标签,然后文本将输出的文本作为标签的内容。您可以在文本内使用字符串插值#{expression}来输出变量。用内插一个变量

内容的文字:

title #{yield(:title)} | Ruby on Rails Tutorial Sample App 

您也可以通过使用tag =设置标签的内容,以红宝石表达。

title = yield(:title) + " | Ruby on Rails Tutorial Sample App" 

注意,在这种情况下,如果yield(:title)回报nil

当你有嵌套的标签,你应该把它们放在单独的线路,这将无法工作。

+1

感谢您花时间回答这个问题。 – 12init 2014-10-30 18:19:49