Ruby on Rails上的Slim模板,最佳实践是什么?

8

我有困难理解基本的Slim语法。

首先,如何换行?

第二个请求,您能否重新编写以下片段,我怀疑我没有用最简单的方法?

- provide(:title, @course.title)                                                                                                          

.row
  aside.span4
    section
      h1 = @course.title.capitalize

      => link_to t('ui.edit'), edit_course_path(@course)
      '|
      => link_to t('ui.back'), courses_path

      p
        b #{t('activerecord.attributes.subject.title')}:
        | #{@course.subject.title}

      p
        b #{t('activerecord.attributes.student_level.title')}:
        | #{@course.student_level.title}

      h4 #{t('activerecord.attributes.course.objectives')}
      = @course.objectives

以下是它的输出:

标题a

编辑|返回

主题名称:英语5-7岁儿童

学生水平:初学者

关于该课程的信息

目标b

2个回答

10

对于换行,您应该使用br标签,例如:

h1 Line1 content
br
h1 Line2 content

关于上面提到的代码,可以重写为:

-provide(:title,@course.title)                                                    
.row
  aside.span4
    section
      h1 = @course.title.capitalize

      = link_to t('ui.edit'), edit_course_path(@course)
      '|
      = link_to t('ui.back'), courses_path

      p
        b = t('activerecord.attributes.subject.title')
        |:     
        = @course.subject.title

      p
        b = t('activerecord.attributes.student_level.title')
        |: 
        = @course.student_level.title

      h4 = t('activerecord.attributes.course.objectives')
      = @course.objectives

3
似乎 Slim 不支持不换行的单行 <br> 标签。Aman Garg 的上面的示例会强制新建一个 <h1> 标签。另一种方法是,如果希望在同一行上,则可以尝试像这样做:h1 内容<br> 内容 - arxpoetica
因为$/更好,所以被踩了。请看我的答案,里面有原因。 - Steve Benner

5
要在Slim模板中将br标签插入到某个标记中: 示例1: Slim模板:
h1
  | Hello
  br
  | world

它将生成HTML代码:
<h1>Hello<br>world</h1>

例子2. 显示表单的Slim模板片段:

p
  = f.label :title
  br
  = f.text_field :title

它将生成HTML:
<p>
  <label for="question_title">Title</label><br>
  <input name="question[title]" id="question_title" type="text">
</p>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接