【问题标题】:Best Practices for Styling ERB样式化 ERB 的最佳实践
【发布时间】:2012-06-23 04:47:15
【问题描述】:

我想就 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!)

谢谢。

【问题讨论】:

  • FWIW,我通常遵循本指南:github.com/bbatsov/ruby-style-guide,但它并没有真正解决 ERB。我不喜欢将所有内容缩进到括号所在的位置(或者如果你使用它们的话)。
  • 不确定您的自动换行。我将代码保持在每行〜
  • 这很好。我可能会尝试插入我自己的回报。我正在使用 Sublime Text 2,你是对的,有时每行 80 的自动换行会产生奇怪的缩进。谢谢。

标签: ruby-on-rails ruby styles indentation erb


【解决方案1】:

需要考虑的一些事项:

  • 不要使用“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 设置样式的类要干净得多,无用的类也少得多。

【讨论】:

  • 感谢您的回复。我认为将这种类型的代码移动到帮助者或演示者中是可行的方法,因为其他人也通过 Twitter 向我提到了这一点。
  • 不要忘记将答案标记为有用/正确,它可以帮助我/其他人保持积极性来帮助您和其他人:)
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 2018-12-13
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2011-06-28
    • 2019-10-10
    相关资源
    最近更新 更多