3

我想就 ERB 模板样式的最佳实践获得一些社区意见。

  • 我使用的选项卡宽度为 2。
  • 我使用软标签(空格)。
  • 我使用 80 的自动换行。

除了 ERB 模板中的 Ruby 代码之外,我还缩进了所有 HTML 标记。

这通常使得 ERB 非常易读。

假设上述或类似参数,您更喜欢缩进较长的行吗?

考虑这个例子:

<div class="content">
  <div class="row">
    <div class="span10">
      <%= simple_form_for(@user, html: { class: 'form-horizontal' }) do |f| %>
        <%= f.input :MembershipID, label: 'Membership ID :', hint: 'Use the user\'s official Membership ID if they have one. Otherwise, enter their phone number (e.g. 2125551234)', input_html: { value: @user[:MembershipID] } %>
      <% end %>
    </div>
  </div>
</div>

f.input行变得非常丑陋且难以阅读

我在想这样的东西会很理想,但我想在改变我的很多风格之前得到一些反馈。

<div class="content">
  <div class="row">
    <div class="span10">
      <%= simple_form_for(@user, html: { class: 'form-horizontal' }) do |f| %>
        <%= f.input :MembershipID, 
                label: 'Membership ID :', 
                hint: 'Use the user\'s official Membership ID if they have one. Otherwise, enter their phone number (e.g. 2125551234)', 
                input_html: { value: @user[:MembershipID] } %>
      <% end %>
    </div>
  </div>
</div>

我来回考虑是否从 ERB 开始标记<%=或从帮助程序名称f.input进行双重缩进更好。

请称重!(请不要把它变成 ERB 与 HAML 的辩论,只假设 ERB!)

谢谢。

4

2 回答 2

5

需要考虑的一些事项:

  • 不要使用“span10”和“row”类,而是在你的 CSS 中应用它
  • 使用助手,即使您不打算重用它们(目前),它也会清理您的代码

这给了你类似的东西:

<div class="content">
  <%= simple_form_for(@user) do |f| %>
    <%= membership_input_field %>
  <% end %>
</div>

SCSS:

.content {
  @extend .row;
  #users_form {
    @extend .span10;
    @extend .form-horizontal;
  }
}

我现在无法对此进行测试,但您应该了解总体思路。更简洁,更少无用的类来设置 HTML 样式。

于 2012-06-23T07:53:27.313 回答
3

对于长或复杂的 ERB 扩展,我经常像这样使用多行:

<div>
  <div>
    <%=
      some_call_with_lots_of_args_or_a_block(
        arg1,
        arg2
      ) do
        block_stuff()
      end
    %>
  </div>
</div>

很多行,但是对于给定的“sense”值,缩进现在都“有意义”。!

于 2012-06-24T02:46:47.150 回答