【问题标题】:Slim templates on Ruby on Rails, what are best practicesRuby on Rails 上的 Slim 模板,最佳实践是什么
【发布时间】:2013-09-18 16:11:53
【问题描述】:

我无法理解基本的 Slim 语法。

第一个问题,如何换行(换行)?

第二个请求,请你重写下面的sn-p,我怀疑我没有简单的方法?

- 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

解放(编辑)|奥卡加

Predmet nomi: 英语 5-7 岁

O'quvchi darajasi:初学者

Kurs haqida ma'lumot

目标 b

【问题讨论】:

    标签: ruby-on-rails templates slim-lang


    【解决方案1】:

    对于新行,您应该只使用 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
    

    【讨论】:

    • Slim 似乎不支持单行
      标签而不破坏新元素。上面来自 Aman Garg 的示例强制使用新的

      标记。 Alt:如果你想在同一行上做类似h1 content<br> content 的事情。

    • 投反对票,因为$/ 明显更好。原因见我的回答。
    【解决方案2】:

    将 br 标签插入到 slim 的某个标签中:

    示例 1. 超薄模板:

    h1
      | Hello
      br
      | world
    

    它会产生html:

    <h1>Hello<br>world</h1>
    

    示例 2. 显示表单的苗条模板片段:

    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>
    

    【讨论】:

      【解决方案3】:

      我必须不同意这一点。我一直使用$/,原因如下:

      • br 标记已过时,并且由于可能导致问题的边缘情况变得不那么优先。相比之下,使用 $/ 没有任何影响。
      • 它没有完全标准化,并且已经有一些情况导致了问题(google)。
      • 实际的 W3 规范定义了非常 非常 特定用例和此标签的规定。坦率地说,我们已经超出了在 HTML 输出中呈现换行符的过度思考或跳槽的地步——这是我的看法!
      • 最后,我发现这是最令人信服的原因:**使用$/ 总体上更习惯用语,因为我们使用的是 ruby​​ 库。它是完全不可知的,也可以与其他模式相匹配,而无需打印额外的标签。

      这是我在几个现场项目中使用的“真实世界”示例:conditional-html-tags.rb

      【讨论】:

      • 您能告诉我们如何在实际的苗条语法视图中使用它吗? #showthecode
      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2010-09-12
      相关资源
      最近更新 更多