我有一些调用current_language
的辅助方法,有时我会在local_assigns
中发送current_language
。
所以我想通过local_assigns
的current_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()