将Slim代码转换为ERB

时间:2017-10-26 17:13:22

标签: ruby-on-rails erb slim-lang

我有这个苗条的代码:

.search-wrapper
  - if content_for?(:fulltext_search)
    = yield(:fulltext_search)
  - else
    - placeholder = nil unless defined? placeholder
    = form_tag collection_path, method: :get
      .input-group style='margin-bottom: 0;'
        = text_field_tag :term, params[:term], placeholder: placeholder || t(:search, default: 'search'), class: 'form-control'
        .btn-group
          button.btn.btn-search tabindex="-1" type='submit' title=t(:search, default: 'search')
            i.fa.fa-search

我想转换为erb代码。我尝试过第一行:

<div class="search-wrapper">
  <% if content_for(:fulltext_search) %>
      <%= yield(:fulltext_search) %>
  <% else %>
  <% placeholder = nil unless defined? placeholder %>
      <%= form_tag collection_path, method: :get %>
  <% end %>
</div>

我正在努力的想法是。我不知道如何将此代码转换为erb:

= form_tag collection_path, method: :get
  .input-group style='margin-bottom: 0;'

请告诉我如何转换上述代码。

感谢

2 个答案:

答案 0 :(得分:1)

在SLIM中,只要您看到.class-name,就可以将其转换为<div class="class-name"></div>

此外,.input-group的缩进表示父do

中的一个块(endform-tag

在你的情况下,

= form_tag collection_path, method: :get
  .input-group style='margin-bottom: 0;'

转换为:

  <%= form_tag collection_path, method: :get do %>
    <div class="input-group" style="margin-bottom:0">
    </div>
  <% end %>

.input-group下的所有缩进内容都会放在<div>标记内。

使用erb2slim工具验证了这一点。

答案 1 :(得分:1)

最简单的方法是使用内置的erb转换器。为什么不使用它?

跑步:

slimrb -e your_file.slim

你把所有东西都转换成了erb。