我正在使用 wice-grid gem。
他们的示例显示了.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 -%>
# Converted SLIM does not render properly
- grid(@tasks_grid) do |g|
- g.column do |task|
= task.id
- g.column do |task|
= task.title
我试过使用这个 erb2slim 转换器,但它输出end
slim
不允许的。
编辑:解决方案(感谢下面的帮助!
# 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
=
等于 ERB 模板中的<%=
。它输出表达式。-
评估但不像 ERB 中的<%
那样输出。如果您查看 erb 模板,您会发现它只输出grid(@tasks_grid) do
的返回值,而不是task.id
。
另请注意,转换器很少能完成 100% 的工作,也不能替代了解原始语言和目标语言。它们只是提供了一个起点,使这个过程不那么艰巨。