Rails:模板错误“动态常量赋值”

时间:2011-12-12 09:21:30

标签: ruby-on-rails-3 view partial

在我看来,我渲染了一部分。

部分的名称由产品页面的名称构成。

<%= 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 :(得分:0)

您需要downcase标题:

selected.headline.downcase

这是因为你要渲染这样的部分:product_pages/Elektronik,当你调用render :partial时,它会尝试定义一个与部分名称相同的局部变量,这就是你得到这个错误的原因:代码不是定义一个局部变量,但实际上是在定义一个常量。

如果你downcase它,它将定义一个局部变量而不是这个常量。