这个问题在这里已有答案:
我有一些叫做current_language
的辅助方法,有时候我会在current_language
发送local_assigns
。
所以我想通过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()