尝试将跟踪输出添加到ERB模板时,在尝试查找变量ex_title
的来源时,我遇到了以下问题。
尝试列出当前范围内的所有可能变量,但在那里 根本不存在:
<%= instance_variables.grep(/ex_title/) %> # renders an empty array
<%= global_variables.grep(/ex_title/) %> # renders an empty array
<%= local_variables.grep(/ex_title/) %> # renders an empty array
<%= instance_variables.sort %> # renders array with many elements
<%= global_variables.sort %> # renders array with many elements
<%= local_variables.sort %> # renders array with many elements
尽管ex_title
变量确实存在:
<%= ex_title %> # renders "Categories - Online store"
<%= ex_title.class %> # renders "String"
<%= ex_title.object_id %> # renders "15825900"
如果不在全局变量,本地变量或实例变量中,还能找到其他地方吗?
答案 0 :(得分:0)
然后你必须得出结论,这是一种方法。使用defined?
确定ex_title
是什么。例如:
defined? ex_title #=> nil
def ex_title; end
defined? ex_title #=> "method"
ex_title = Object.new
defined? ex_title #=> "local-variable"