在我看来,我渲染了一部分。
部分的名称由产品页面的名称构成。
<%= 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'
答案 0 :(得分:0)
您需要downcase
标题:
selected.headline.downcase
这是因为你要渲染这样的部分:product_pages/Elektronik
,当你调用render :partial
时,它会尝试定义一个与部分名称相同的局部变量,这就是你得到这个错误的原因:代码不是定义一个局部变量,但实际上是在定义一个常量。
如果你downcase
它,它将定义一个局部变量而不是这个常量。