Khm*_*smi 11 ruby-on-rails slim-lang
我的许多观点都是SLIM模板,我希望vote_form
为我的应用添加部分内容.如何将此部分视图从ERB转换为SLIM?
<strong class="result">Votes: <%= voteable.votes_for - voteable.votes_against %></strong>
<%= form_tag user_votes_path(current_user) do |f| %>
<%= radio_button_tag :thumb_direction, :up %>
<%= radio_button_tag :thumb_direction, :down %>
<%= hidden_field_tag :voteable, @voteable %>
<%= submit_tag :vote %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
谢谢 :)
Joe*_*MAR 25
你可以简单地使用html2slim gem
gem install html2slim
Run Code Online (Sandbox Code Playgroud)
这个包包含一个名为的工具erb2slim
,可以将erb文件递归转换为slim.-d
转换完成后删除erb文件的选项.
erb2slim -d <dir of your views>
Run Code Online (Sandbox Code Playgroud)
你必须通过HAML!
在您的环境或gemset上安装HAML依赖项
gem install html2haml # This was moved out of haml gem
gem install ruby_parser
Run Code Online (Sandbox Code Playgroud)
切换到HAML模板
find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \
bash
Run Code Online (Sandbox Code Playgroud)
安装SLIM工具依赖项
gem install haml2slim # https://github.com/fredwu/haml2slim
Run Code Online (Sandbox Code Playgroud)
切换到SLIM模板
find . -name '*haml' | \
xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \
bash
Run Code Online (Sandbox Code Playgroud)
清理ERB和HAML模板
find . -name '*erb' -exec rm -f {} \;
find . -name '*haml' -exec rm -f {} \;
Run Code Online (Sandbox Code Playgroud)
删除依赖项
gem uninstall html2haml
gem uninstall ruby_parser
gem uninstall haml2slim
Run Code Online (Sandbox Code Playgroud)
这一切,玩得开心
这是基于@ Joel的精彩回答.我不得不修改它,因为一些宝石似乎已经移动,我做了一些其他的改进:
gem install ...
然后可以发射该部分以进行更快的处理.更新:不再需要通过haml进行转换.这是更新的脚本:
#### gem install html2slim # this will install `erb2slim` command line tool.
find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "erb2slim #{i} #{i.sub(/erb$/,"slim")}"}' | \
bash
# Clean ERB templates
find . -name '*erb' -exec rm -f {} \;
git add app/views/*
git commit -m "Replace erb with slim"
Run Code Online (Sandbox Code Playgroud)
在我的示例中(运行后rails g devise:views
),所有.erb
文件都被.slim
文件替换,然后被删除:
有时我只想转换一个剪断的.就像之前提到的那样.在这种情况下我使用
https://html2slim.herokuapp.com
所以我们走了:
# You must pass through HAML !
# Install HAML dependencies on your environment or your gemset
gem install haml html2haml hpricot ruby_parser haml2slim
# Switch to HAML templating
find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \
bash
#Switch to SLIM templating
find . -name '*haml' | \
xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \
bash
# Clean ERB and HAML templates
find . -name '*erb' -exec rm -f {} \;
find . -name '*haml' -exec rm -f {} \;
Run Code Online (Sandbox Code Playgroud)
我喜欢事实上的答案,但是我想人们会喜欢知道一种新的宝石,这种宝石可以更快地完成这项工作并且不那么麻烦.然而现在它仍然是相当错误的.:(
看看html2slim.假设我想将所有视图更改.erb
为.slim
,然后我(从头开始,从您的rails根目录)运行以下内容:
gem install html2slim
erb2slim app/views --delete
Run Code Online (Sandbox Code Playgroud)
如果你运行,erb2slim -h
你可以看到-d
/ --delete
是一个删除erbs之后的选项,并--trace
显示任何错误的完整回溯.作者的一个说明,它仍然是实验性的.
只需将文件重命名为以 结尾,.html.slim
而不是.html.erb
,并将内容替换为如下内容:
strong.result= "Votes: #{voteable.votes_for - voteable.votes_against}"
= form_tag user_votes_path(current_user) do
= radio_button_tag :thumb_direction, :up
= radio_button_tag :thumb_direction, :down
= hidden_field_tag :voteable, @voteable
= submit_tag :vote
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10678 次 |
最近记录: |