在我的Rails应用程序中,我将此YAML文件用于本地化目的:
en:
benefits:
b01:
heading: "Vestibulum viverra"
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
b02:
heading: "Nulla sed mollis massa"
text: "Suspendisse potenti. Vestibulum viverra, lorem ac tincidunt tempor, elit eros ornare nisl."
b03:
heading: "Lorem ipsum dolor"
text: "Nulla sed mollis massa, in efficitur est. Nunc ex risus, rutrum ut mi non, mollis pulvinar nisl."
在我看来,我做了这样的事情:
<% (1..3).each do |n| %>
<% number = sprintf('%02d', n) %>
<h2><%= raw t("benefits.b#{number}.heading") %></h2>
<p><%= raw t("benefits.b#{number}.text") %></p>
<% end %>
有没有办法在each
循环中指定最后一个YAML节点(&#34; 3&#34;)的数量来实现同样的目的?
感谢您的帮助。
答案 0 :(得分:3)
作为哈希对象,您可以访问每个值以及标题和文本键:
WHERE
答案 1 :(得分:1)
你不需要数字或索引,只需迭代键,这是一个例子:
<% I18n.t('benefits').keys.each do |k| %>
<%= I18n.t("benefits.#{k}.heading") %>
<%= I18n.t("benefits.#{k}.text") %>
<% end %>
因为I18n.t("benefits")
返回哈希,我们可以在其上使用keys
方法。
无论文件中有多少个键。