Rails: Ошибка шаблона "динамическое назначение констант" - PullRequest
0 голосов
/ 12 декабря 2011

На мой взгляд, я отрисовываю частичное.

Название части построено по имени страницы продукта.

<%= render :partial => "product_pages/" + selected.headline %>

В тестовом случае заголовок «электроника».

Так я тоже попробовал:

<%= render :partial => "product_pages/electronics"

Для тестирования частичное представление выглядит так:

<p>Test</p>

Теперь я получаю эту ошибку, я не понимаю:

ActionView::Template::Error (/var/www/*****/app/views/product_pages/_Elektro
nik.html.erb:1: dynamic constant assignment
...r = @output_buffer;Elektronik = local_assigns[:Elektronik];;...
...                               ^):
    1: <p>Test</p>
  app/views/pages/_content.html.erb:13:in `_app_views_pages__content_html_erb__4
0580468132849538_266915680_1201196437383914942'
  app/views/pages/index.html.erb:3:in `_app_views_pages_index_html_erb__43007964
38685262523_267219620_562910368159856764'

1 Ответ

0 голосов
/ 12 декабря 2011

Вам нужно downcase ваш заголовок:

selected.headline.downcase

Это потому, что вы собираетесь визуализировать партиал, подобный этому: product_pages/Elektronik, и когда вы вызываете render :partial, он попытается определить локальную переменную с тем же именем, что и партиал, поэтому вы получаете эту ошибку: код не определяет локальную переменную, а фактически определяет константу.

Если вы downcase это, он определит локальную переменную, а не эту константу.

...