【问题标题】:Rails - calling a partialRails - 调用部分
【发布时间】: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:”选项。

标签: ruby-on-rails partials


【解决方案1】:

rails 有 2 种情况由你决定

案例一:

<%= render partial "shared/headerblock", locals: {cntrnm: @cntrlst.CountrName } %>

案例 2:

<%= render "shared/headerblock", cntrnm: @cntrlst.CountrName %>

【讨论】:

  • 案例 1 有效,但只能使用 arieljuod 建议的“部分:”,而不是没有冒号。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 2021-10-16
  • 1970-01-01
  • 2013-06-19
  • 2011-11-09
  • 1970-01-01
相关资源
最近更新 更多