我希望将render
函数与.yml i18n文件中声明的路径结合起来。我的I18n .yml文件遵循以下结构:
pages:
nav:
items:
- id: books
link: 'books'
- id: about
link: 'about'
- id: contact
link: 'contact'
我的主要布局就是这个:
index.html.erb
<% t('pages.nav.items').each do |item| %>
<div id='<%= item[:id] %>'>
<%= render item[:link] %>
</div>
<% end %>
当我使用<% render item[:link] %>
时,我(显然)会收到错误消息,因为语法不正确:
'nil' is not an ActiveModel-compatible object. It must implement :to_partial_path.
我也试过这段代码:
<%= render "'"+item[:link].to_s+"'"%>
和这一个:
<%= render partial: "'"+item[:link].to_s+"'"%>
但是得到这个错误,render
似乎只考虑第一个参数:
Missing partial pages/_'', application/_'' with {:locale=>[:fr], :formats=>[:html], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}. Searched in:
所以我的问题是你如何建议将render
与.yml文件中声明的值结合起来?