我有一些名为current_language
的助手方法,有时我会在current_language
中发送local_assigns
。
所以我想用local_assigns
的{{1}}分配我的部分变量,以防万一它被发送了。
但是我在以下代码中发现了一些奇怪的东西:
current_language
在调试<%
binding.pry
x = 4
current_language = local_assigns[:current_language] || current_language
%>
等于current_language
的第3行中,甚至在覆盖之前。
我希望它在被覆盖之前仍将等于辅助方法。
那是怎么回事?
答案 0 :(得分:1)
这是该语言的充分记录的功能。该变量有点悬挂。使用以下代码明确告诉解析器变量在哪里,方法调用在哪里:
# ⇓⇓
current_language = local_assigns[:current_language] || current_language()