Ruby on rails wice_网格(ruby on rails):从ERB到SLIM

Ruby on rails wice_网格(ruby on rails):从ERB到SLIM,ruby-on-rails,ruby,erb,slim-lang,Ruby On Rails,Ruby,Erb,Slim Lang,我在用电话 他们的示例显示了.erb中的视图,但我想在我的项目中使用.slim,但在将示例erb转换为工作slim时遇到了问题 # ERB renders and works perfectly <%= grid(@tasks_grid) do |g| g.column do |task| task.id end g.column do |task| task.title end end -%> 我试过使用这个转换器,但它输出end,这是sli

我在用电话

他们的示例显示了
.erb
中的视图,但我想在我的项目中使用
.slim
,但在将示例
erb
转换为工作
slim
时遇到了问题

# ERB renders and works perfectly
<%= grid(@tasks_grid) do |g|

  g.column do |task|
    task.id
  end

  g.column  do |task|
    task.title
  end
end -%>
我试过使用这个转换器,但它输出
end
,这是
slim
不允许的

编辑: 解决方案(感谢下面的帮助!)


=
等于
ERB模板有
是的,很抱歉第一个字符应该是=。我已经编辑了答案,谢谢!我想就快到了。在转换到上面的示例之后,我能够呈现一个包含表的html的字符串。为了让它实际显示为html,我做了
-table_output=grid(@tasks_grid)do | g |
,然后在块之后,呈现它:
=table_output.html_safe
。这比我想象的要复杂一些,但可以管理。你对一种更干净的方法有什么建议吗?在slim中,你不能像在ERB中那样在
end
上调用一个方法,所以这可能是在模板中最干净的方法。您可以编写一个方法来包装
grid
并调用
super.html\u safe
。但我真的不明白你为什么打电话来。整个事情都很安全。首先,这可能不是最好的主意。
# Converted SLIM does not render properly
- grid(@tasks_grid) do |g|
  - g.column do |task|
    = task.id

  - g.column  do |task|
    = task.title
# Generate grid
- grid = grid(@tasks_grid) do |g|
  - g.column do |task|
    - task.id

  - g.column  do |task|
    - task.title

# Render content in a safe way
= content_tag(:div, grid)
= grid(@tasks_grid) do |g|
  - g.column do |task|
    - task.id

  - g.column  do |task|
    - task.title