ruby-on-rails – Rails i18n项目列表和循环视图

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails i18n项目列表和循环视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在yml中列出元素并在视图中循环它们并访问它们的属性?我当前的代码获取列表中的最后一项.我想在视图中循环遍历项目列表并显示标题和描述元素.

例如

阳明:

en:
  hello: "Hello world"
  front_page:
    index:
      description_section:
        title: "MyTitle"
        items:
          item:
            title: "first item"
            description: "a random description"
          item:
            title: "second item"
            description: "another item description"

视图:

<%= t('front_page.index.description_section.items')do |item| %>
          <%= item.title %>
          <%= item.description %>
      <%end %>

结果:

{:item=>{:title=>"second item",:description=>"another item description"}}

期望的结果:

first item
    a random description

    second item
    another item description

解决方法

请改用:
<% t('front_page.index.description_section.items').each do |item| %>
# ^ no equal sign here
  <%= item[:title] %>
     #^^^^ this is a hash
  <%= item[:description] %>
<% end %>

此外,您的商品列表未正确定义:

t('front_page.index.description_section.items.item.title')
# => returns "second item" because the key `item` has been overwritten

使用以下语法在YAML中定义数组:

items:
- title: "first item"
  description: "a random description"
- title: "second item"
  description: "another item description"

要检查这一点,您可以在IRB控制台中执行此操作:

h = {:items=>[{:title=>"first item",:description=>"desc1"},{:title=>"second item",:description=>"desc2"}]} 
puts h.to_yaml
# => returns
---
:items:
- :title: first item
  :description: desc1
- :title: second item
  :description: desc2

猜你在找的Ruby相关文章