簡體   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