代码之家  ›  专栏  ›  技术社区  ›  tarabyte

如何在Ruby/Rails中保持HTML的风格?

  •  0
  • tarabyte  · 技术社区  · 14 年前

    我是Ruby/Rails的初学者,刚刚用编程的方式生成了我的第一个HTML——有点令人兴奋——但是当我从浏览器中查看“页面源代码”时,我的HTML有了所有这些额外的空白,并且弄乱了逻辑缩进:

    <% @states_array.each do |state| %>
      <ul><%= state %></ul>
    <% end %>
    

    以及application.html.erb布局中的以下代码: 练习标题

      <div class="text">
        <%= yield %>
      </div>
    
      <div class="footer">
      </div>
    

    当我查看该页的页源时生成了此HTML:

          <div class="header">
            Practice Header
          </div>
    
          <div class="text">
    
      <ul>California</ul>
    
      <ul>Colorado</ul>
    
      <ul>Florida</ul>
    
      <ul>Georgia</ul>
    
      <ul>New York</ul>
    
      <ul>North Carolina</ul>
    
      <ul>North Dakota</ul>
    
      <ul>Oregon</ul>
    
          </div>
    
          <div class="footer">
          </div>
    

    每行后面只出现一个额外的空格,并且我放置<%=yield%>的位置的逻辑缩进丢失。非常感谢你事先的帮助。

    4 回复  |  直到 14 年前
        1
  •  0
  •   JackCA    14 年前

    <ul>
    <% @states_array.each do |state| %>
      <li><%= state %></li>
    <% end %>
    </ul>
    
        2
  •  3
  •   Steve Ross    14 年前

    您可以用减号关闭以抑制后面的换行符:

    <% some.ruby.statement -%>

    如果标记的美丽对您来说真的很重要,请查看Haml(http://Haml-lang.com/)。

        3
  •  2
  •   Community Sam Holder    7 年前
    <% @states_array.each do |state| %>
      <ul><%= state %></ul>
    <% end %>
    

    字符串中的结果 "\n<ul>state</ul>\n"

    <% @states_array.each do |state| %><ul><%= state %></ul>
    <% end %>
    

    但在你的代码中,这并不容易阅读。我已经读到有一种方法可以跳过后面的新行,但是不记得确切的方法(Update:see @user156011's answer

    但事实是- 其实没关系

        4
  •  1
  •   Robbie    14 年前

    如果你想要标记可读性-Haml对我来说只是一个梦想。 在开发模式中,它输出的HTML格式华丽,缩进正确。

    然而,如果您对Ruby/Rails还不熟悉,学习一种新的模板语言可能不是您最感兴趣的。(尽管如此,我还是认为如果你能学会ERb,你可以在一天内轻松地接上Haml。)

    如果要坚持使用ERb,可以使用<%-和-%>分别抑制前导/尾随空格。这可能有助于您寻求干净的标记。

    祝你好运:)