Rails I18n: визуализация частичного с переменной - PullRequest
0 голосов
/ 30 апреля 2018

Я хочу объединить функцию 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?

...