部分变量是否覆盖帮助程序方法



我有一些调用current_language的辅助方法,有时我会在local_assigns中发送current_language

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

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

<%
  binding.pry
  x = 4
  current_language = local_assigns[:current_language] || current_language
%>

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

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

这到底是怎么回事呢?

这是该语言有据可查的功能。变量有点吊起来。使用此代码显式告知解析器变量在哪里以及方法调用在哪里:

#                                                                      ⇓⇓
current_language = local_assigns[:current_language] || current_language()

最新更新