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

时间:2010-05-15 06:11:04

标签: ruby-on-rails ruby views correctness

很抱歉,如果标题不足以理解我的要求。 我是rails开发者,我使用多行< %%>在我的观点中,但现在我意识到这不是最佳实践,所以我来到这里,并且喜欢你们所有优秀的人在ROR中的正确方法是什么?

例如,如果我需要类似下面的内容

 <% 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 个答案:

答案 0 :(得分:1)

我认为正确的方法是完全不同的:将逻辑移出视图。

This blog post解释了我的意思。

答案 1 :(得分:1)

开头和结尾的

必须有'&lt;%'或'%&gt;' 像:

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

答案 2 :(得分:0)

每个代码块只使用一对标签当然更可取,因为它只会使输出变小。

代码应该看起来像

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

请注意,“count”可以通过names.size获得。

如果你需要混合&lt;%和&lt;%=你需要切换:

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