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

使用多行<%%>标记或多行<%%>标记的最佳方法是什么?

  •  1
  • Salil  · 技术社区  · 14 年前

    例如,如果我需要以下内容

     <% user =User.all %>
     <% name= [] %>
     <% count = 0 %>
      <% for user in users %>
        <% name << user.name %>
        <% count+=1%>
      <% end %>
    

    我可以按以下步骤做吗?

     <% user =User.all 
        name= [] 
        count = 0
        for user in users 
          name << user.name 
          count+=1
        end 
     %>
    

    我知道从数组中收集元素的更好方法,但上面只是一个例子。 但我的问题是,有可能吗?如果有,哪种方法是正确的?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Hermine D.    14 年前

    我认为正确的方法是完全不同的:把逻辑从视图中移开。

    This blog post

        2
  •  1
  •   insub    11 年前

    in start和end必须有“<%”或“%>” 比如:

    <% users = User.all 
        name= [] 
        count = 0
        for user in users 
          count+=1
        end %>
    
        3
  •  0
  •   Robert Klemme    14 年前

    在每个代码块中只使用一对标记当然更可取,因为这样可以使输出更小。

    代码应该看起来像

    <% names = User.all.map(&:name) %>
    

    如果需要混合使用<%和<%=则需要切换:

    <% for user in User.all %>
    <%= user.name %></br>
    <% end %>