繁体   English   中英

在ruby erb变量中使用变量

[英]Using variables in ruby erb variables

我有一个包含很多这些的erb文件,我正在尝试为它们创建一个循环:

<% if @addhostgroup -%>
  <% @addhostgroup.each do |k, v| %>
    <%= k %> <%= v %>
  <% end %>
<% end %>

<% if @addservicegroup -%>
  <% @addservicegroup.each do |k, v| %>
    <%= k %> <%= v %>
  <% end %>
<% end %>

我想做的是这样的:

<% %w(addhostgroup addservicegroup).each do |action| %>
  <% if @action -%>
    <% @action.each do |k, v| %>
      <%= k %> <%= v %>
    <% end %>
  <% end %>
<% end %>

有人可以告诉我如何在erb变量名称上使用变量吗?

我在寻找没有成功的方法。

非常感谢你!

编辑:一种更简单的方法是制作一个普通数组而不是百分比文字。 [@addhostgroup, @addservicegroup].each do |action| 有时我忽略了一些小东西:)

您可以使用instance_variable_get与阵列和迭代到一起action ,你必须设置。

立即添加一行的每个块内以: <% instance_var_value = instance_variable_get(:"@#{action}") %>

您还可以在迭代之前将值映射到数组。

问题在于块变量action包含一个带有操作名称的字符串。 您要使用基于名称的动态名称来调用@variable 您正在搜索以下代码:

instance_variable_get("@#{action}")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM