部分变量会覆盖辅助方法吗?

时间:2019-04-23 13:39:45

标签: ruby-on-rails ruby ruby-on-rails-3 partials

我有一些名为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行中,甚至在覆盖之前。

我希望它在被覆盖之前仍将等于辅助方法。

那是怎么回事?

1 个答案:

答案 0 :(得分:1)

这是该语言的充分记录的功能。该变量有点悬挂。使用以下代码明确告诉解析器变量在哪里,方法调用在哪里:

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