1

对不起,如果标题不足以理解我在问什么。我是 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 
 %>

我知道从数组中收集元素的更好方法但以上只是示例。但我的问题是,是否有可能,如果是的话,哪种方法是正确的?

4

3 回答 3

1

在 start 和 end 必须有 '<%' 或 '%>' 像:

<% users = User.all 
    name= [] 
    count = 0
    for user in users 
      count+=1
    end %>
于 2013-09-16T10:59:41.693 回答
1

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

这篇博文解释了我的意思。

于 2010-05-15T06:27:28.150 回答
0

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

代码应该看起来像

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

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

如果你需要混合 <% 和 <%= 你需要切换:

<% for user in User.all %>
<%= user.name %></br>
<% end %>
于 2010-05-15T10:22:52.710 回答