[英]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.