很抱歉,如果标题不足以理解我的要求。 我是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
%>
我知道从数组中收集元素的更好方法但上面只是示例。 但我的问题是,是否可能,如果是,这是正确的方法?
答案 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 %>