B.10. 解析数组
在编写或修改模板时,您可能会遇到返回数组的变量。例如,与网络接口相关的主机变量,如 @host.interfaces
或 @host.bond_interfaces
,返回数组中分组的接口数据。要提取特定接口的参数值,请使用 Ruby 方法解析阵列。
查找解析数组的正确方法
以下流程是一个示例,您可以使用它来查找模板中解析数组的相关方法。本例中使用了报告模板,但步骤适用于其他模板。
要检索内容主机的 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 方法或成员 栏中,您可以查看以下方法来解析阵列:[] 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 方法或 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