11

vote_form私のビューの多くは SLIM テンプレートで、アプリにパーシャルを追加したいと考えています。この部分ビューを 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 %>

ありがとう :)

4

7 に答える 7

28

.erb を .slim に変換する方法:

更新 (18-08-2015)

単純にhtml2slim gemを使用できます

gem install html2slim

このパッケージには、erb2slimerb ファイルを再帰的にスリムに変換できるツールが含まれています。-d変換完了後にerbファイルを削除するオプション。

erb2slim -d <dir of your views>

devise wiki で見る

元の答え

HAMLを通過する必要があります。

環境または gemset にHAML依存関係をインストールする

gem install html2haml # This was moved out of haml gem
gem install ruby_parser

HAMLテンプレートに切り替える

find . -name '*erb' | \
xargs ruby -e 'ARGV.each { |i| puts "html2haml -r #{i} #{i.sub(/erb$/,"haml")}"}' | \
bash

SLIMツールの依存関係をインストールする

gem install haml2slim # https://github.com/fredwu/haml2slim

SLIMテンプレートに切り替える

find . -name '*haml' | \
xargs ruby -e 'ARGV.each { |i| puts "haml2slim #{i} #{i.sub(/haml$/,"slim")}"}' | \
bash

ERBHAMLテンプレートのクリーンアップ

find . -name '*erb' -exec rm -f {} \;
find . -name '*haml' -exec rm -f {} \;

依存関係を削除する

gem uninstall html2haml
gem uninstall ruby_parser
gem uninstall haml2slim

それでは、楽しんでください

于 2013-01-24T16:26:35.683 に答える
6

これで、erb コードを貼り付けて「go」をクリックするだけです:
http://html2slim.herokuapp.com/

于 2013-11-24T02:49:53.113 に答える
6

これは、@ Joel の素晴らしい回答に基づいています。いくつかの宝石が移動したように見えるため、少し変更する必要があり、その他の改善を行いました。

  • すべて1つのスクリプトなので、コピーして貼り付けるだけです
  • 次のプロジェクトでこれが必要になる可能性が高いため (たとえば、devise のビューを作成するとき)、最後に gem を削除しないでください。
  • その後、その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"

結果

私の例(実行後rails g devise:views)では、すべての.erbファイルがファイルに置き換えられて.slimから削除されました:

スクリーンショット

単一ファイルの代替

時々、切り取ったものを変換したいだけです。前に述べたように。そのような場合、私は使用します

https://html2slim.herokuapp.com

html2slim-in-action

古いアプローチ

だからここに行きます:

# 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 {} \;
于 2014-09-27T09:25:41.530 に答える
5

私は事実上の答えが好きですが、人々はこれをより速く、手間をかけずに行う新しいgemについて知りたいと思っています. 現時点ではかなりバグがあります。:(

html2slimをチェックしてください。すべてのビューを から に変更したいとします.erb.slim次に、(ゼロから、そして Rails ルート ディレクトリから) 以下を実行します。

gem install html2slim
erb2slim app/views --delete

実行すると、 /は後で erbs を削除するオプションであり、エラーの完全なトレースバックerb2slim -hが表示されることがわかります。まだ実験段階であるという作者からのメモ。-d--delete--trace

于 2014-07-06T23:28:47.533 に答える
1

.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
于 2012-05-16T18:53:21.477 に答える
0

これはまさにあなたが望むことを行うオンライン ツールですhttp://erb2slim.herokuapp.comは erb スニペットをスリムに変換します。

于 2015-04-22T23:31:03.310 に答える
0

以前の回答と同様に、2 つの gem を使用します。

 gem install html2haml haml2slim

それで:

 find app/views -name \*.erb -print | sed 'p;s/.erb$/.haml/' | xargs -n2 sh -c 'html2haml "$0" "$1" && rm "$0"'

*.erb変換されたバージョンに置き換え*.hamlます。

ファイルを変換*.haml*.slimて削除するには:*.haml

 haml2slim -d app/views

結局のところ、オプションで:

 gem uninstall html2haml haml2slim
于 2015-05-23T21:22:43.630 に答える