题
我正在使用一个木偶模板,该模板可以对模板文件进行ERB解释。我想知道我所有可用的变量,但是,有一些可用的变量(例如,fqdn),这些变量均未列出我所知道的任何反射方法,具体来说,这些方法都没有:
<% Module.constants.each do |v| %># module constant: <%= v %>
<% end %>
<% Kernel.local_variables.each do |v| %># local variable: <%= v %>
<% end %>
<% Kernel.instance_variables.each do |v| %># instance variable: <%= v %>
<% end %>
<% Module.class_variables.each do |v| %># class variable: <%= v %>
<% end %>
<% Kernel.global_variables.each do |v| %># global variable: <%= v %>
<% end %>
ERB是否有额外的反思方法可以向我揭示这些方法?
解决方案
这 “查看所有客户端变量” 应该做你想做的事
其他提示
真的不知道木偶模板,但是 fqdn
是局部变量,然后调用 local_variables
(如 self.local_variables
)应该显示。
我对ERB内置的反思方式不太了解,但是有了木偶,我认为返回的哈希 scope.to_hash
可能是您想要的。从 模板参考:
<% scope.to_hash.keys.each do |k| -%>
<%= k %>
<% end -%>
或者,如果您只想一次查看代理节点供应的变量,则可以运行 facter
在节点上;首先,这就是木偶获得所有信息的方式。
不隶属于 StackOverflow