Ruby on Rails项目中如何将Slim代码转换为HTML?
把Slim模板转成HTML.erb的几种方法
嘿,我刚处理过类似的需求,给你分享几个靠谱的办法:
1. 用Rails自带的渲染功能直接生成HTML
这是最准确的方式,能确保Rails上下文(比如实例变量、辅助方法)都被正确解析。在项目根目录的终端里运行:
rails runner "puts ApplicationController.render(file: 'app/views/[你的控制器名]/index.html.slim')"
把[你的控制器名]换成实际的控制器文件夹名(比如你的Slim文件在app/views/posts/index.html.slim,就换成posts)。运行后终端会输出完整的HTML(包括解析后的Ruby代码),直接复制粘贴到新建的index.html.erb文件里就行。
2. 用Slim的命令行工具转换
如果你的项目已经依赖了Slim gem(看Gemfile里有没有gem 'slim'),直接在终端运行:
slimrb app/views/[你的控制器名]/index.html.slim
如果没装Slim,先全局安装:
gem install slim
或者在项目里添加后执行bundle install,再运行上面的命令。输出的HTML可以直接复制到erb文件中,记得把Slim里的Ruby语法对应成erb的:
- Slim里的
= @variable→ erb的<%= @variable %> - Slim里的
- if condition→ erb的<% if condition %>
3. 手动转换(适合小型模板)
如果你的Slim代码不多,手动改也很快,给你几个常见的语法对应:
- Slim:
h1 Welcome to my app→ HTML:<h1>Welcome to my app</h1> - Slim:
div.card→ HTML:<div class="card"></div> - Slim:
= link_to 'Home', root_path→ ERB:<%= link_to 'Home', root_path %> - Slim:
- @posts.each do |post|→ ERB:<% @posts.each do |post| %> - Slim:
/ Hidden comment→ HTML:<!-- Hidden comment -->
只要注意缩进对应标签嵌套,Ruby代码块的语法转换对,手动改也没问题。
内容的提问来源于stack exchange,提问作者Piyush Jain
相关产品推荐
相关产品推荐

