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