部分变量是否覆盖辅助方法? [重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有一些叫做current_language的辅助方法,有时候我会在current_language发送local_assigns

所以我想通过local_assignscurrent_language分配我的部分变量,以防它被发送。

但我在下面的代码中发现了一些奇怪的东西:

<%
  binding.pry
  x = 4

  current_language = local_assigns[:current_language] || current_language
%>

在第3行,调试current_language等于nil甚至在覆盖之前。

我希望它仍然等于辅助方法,直到它被覆盖。

那么发生了什么?

ruby-on-rails ruby ruby-on-rails-3 partials
1个回答
1
投票

这是该语言的详细记录功能。该变量有点悬挂。使用此代码显式告诉解析器变量在哪里以及方法调用在哪里:

#                                                                      ⇓⇓
current_language = local_assigns[:current_language] || current_language()
© www.soinside.com 2019 - 2024. All rights reserved.