【发布时间】:2019-10-03 09:10:50
【问题描述】:
我的问题很简单,以至于我犹豫要不要问。 (为什么文档中提供的所有示例都不必要的复杂?)
我想将我的 rails 项目的标题部分转移到部分 (DRY...) 中。
非常简化,我的show.html.erb 中的调用行是:
<%= render "shared/headerblock", locals: {cntrnm: @cntrlst.CountrName } %>
让我们将部分_headerblock.html.erb中的代码减少到绝对最小值:
My Countryname is <%= cntrnm %>
Rails 抱怨(即使没有包含传递变量的纯文本):
未定义的局部变量或方法'cntrnm' ...
怎么了? (顺便说一句:也只是从@cntrlst 传递string 而不是instance 变量会产生此错误。)
据我所知,我只是复制了我在各种教程和博客中找到的内容。 - - - 显然不是 ;-)
【问题讨论】:
-
试试
render partial: 'shared/headerblock', locals: { cntrnm: @cntrlst.CountrName }。使用显式的“partial:”选项。