我正在使用一个木偶模板,该模板可以对模板文件进行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 在节点上;首先,这就是木偶获得所有信息的方式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top