A.10. parsing Arrays
在编写或修改模板时,您可能会遇到返回数组的变量。例如,与网络接口相关的主机变量,如 @host.interfaces
或 @host.bond_interfaces
,返回数组中分组的接口数据。要提取特定接口的参数值,请使用 Ruby 方法解析阵列。
找到 Correct Method 以解析数组
以下流程是一个示例,您可以使用它来查找用于解析模板中的数组的相关方法。本例中使用了报告模板,但步骤适用于其他模板。
要检索内容主机的 NIC,在本示例中,使用
@host.interfaces
变量返回类值,然后使用它来查找用于解析阵列的方法。输入示例:
<%= @host.interfaces -%>
<%= @host.interfaces -%>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 渲染示例:
<Nic::Base::ActiveRecord_Associations_CollectionProxy:0x00007f734036fbe0>
<Nic::Base::ActiveRecord_Associations_CollectionProxy:0x00007f734036fbe0>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
在 Create Template 窗口中,点 Help 选项卡并搜索
ActiveRecord_Associations_CollectionProxy
和Nic::Base
类。 对于
ActiveRecord_Associations_CollectionProxy
,在 Allowed method 或 members 列中,您可以查看以下方法来解析阵列:[] each find_in_batches first map size to_a
[] each find_in_batches first map size to_a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
Nic::Base
,在 Allowed method 或 members 列中,您可以查看以下方法来解析阵列:alias? attached_devices attached_devices_identifiers attached_to bond_options children_mac_addresses domain fqdn identifier inheriting_mac ip ip6 link mac managed? mode mtu nic_delay physical? primary provision shortname subnet subnet6 tag virtual? vlanid
alias? attached_devices attached_devices_identifiers attached_to bond_options children_mac_addresses domain fqdn identifier inheriting_mac ip ip6 link mac managed? mode mtu nic_delay physical? primary provision shortname subnet subnet6 tag virtual? vlanid
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要迭代接口数组,请将相关的方法添加到 ERB 语法:
输入示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 渲染示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow