另一个标签内的超薄标签

时间:2015-05-28 13:04:52

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

我正在寻找更清晰的解决方案,更像Slim,在标签内部写标签,这是我到目前为止所做的:

after_create :assign_repeat_id

def assign_repeat_id
  self.repeat_id = id
  save
end

上面的代码工作正常 - 生成我想要的输出,但对我来说看起来并不干净。我已经尝试将其重写为eRuby

td = "#{p.created_at.to_formatted_s(:long)} <small>(#{time_ago_in_words(p.created_at)} ago)</small>".html_safe

然后使用Erb2Slim转换器将其转换为Slim

<td><%= p.created_at.to_formatted_s(:long) %> <small><%= time_ago_in_words(p.created_at) %> ago)</small></td>

之后它没有显示td = p.created_at.to_formatted_s(:long) small = time_ago_in_words(p.created_at) | ago) 标签及其内容,知道在Slim上编写上述代码的最佳方式是什么以及什么是最好的方式?

1 个答案:

答案 0 :(得分:2)

好像你有缩进(空格)的问题。尝试使用以下缩进:

  td
    = p.created_at.to_formatted_s(:long)
    |  
    small
      | (
      = time_ago_in_words(p.created_at)
      | ago)

注意:在第3行管道后需要2个空格