проблема jruby, повторяющаяся по многомерному объекту хэша - PullRequest
0 голосов
/ 09 декабря 2011

Так что, будучи новичком в rails, я, похоже, застрял в создании цикла внутри цикла для обработки информации.

Я получаю:

не может преобразовать символ в целую строку # 11

Строка, о которой идет речь:

Host <%= servicedetails[:hostidn] %> - <%= servicedetails[:status] %>

А вот полная версия ниже. Будучи новым, я невежественен и открыт для предложений.

<div>
<% @service_hash[:service_list].each do |servicesinfo| %>
        <ul>
        <li>
            <ul>
                <li>
                    <h2><%= servicesinfo[:service_name] %><h2>
                </li>
                <% servicesinfo.each do |servicedetails| %>
                <li>
                    Host <%= servicedetails[:hostidn] %> - <%= servicedetails[:status] %>
                </li>
                <% end %>
            </ul>

        </li>
        </ul>
    <% end %>
</div>

JSON-эквивалент этого хеша

{"status":"successful","service_list":[{"service_name":"oozie","status":"RUNNING","status_message":"Running Master Service","host":"1"},{"service_name":"single-namenode","status":"RUNNING","status_message":"Running Service","host":"1"},{"service_name":"single-database","status":"RUNNING","status_message":"Running Service","host":"1"},{"service_name":"datanode","status":"RUNNING","status_message":"Running Service","host":"1"},{"service_name":"secondarynamenode","status":"RUNNING","status_message":"Running Service","host":"1"},{"service_name":"web","status":"DEAD","status_message":"Running Master Service","host":"1"},{"service_name":"tasktracker","status":"RUNNING","status_message":"Running Service","host":"1"},{"service_name":"jobtracker","status":"RUNNING","status_message":"Running Master Service","host":"1"}]}

1 Ответ

2 голосов
/ 09 декабря 2011

Вы уже перебираете массив хешей с сервисной информацией (переименованной, чтобы иметь смысл):

<% @service_hash[:service_list].each do |service_info| %>
  ...
<% end %>

Перебор по service_info вернул бы [key, value] пар - скорее всего, не то, что вам нужно,

Доступ к информации из service_info напрямую, как вы уже делаете с :name

<%= service_info[:host] %> - <%= service_info[:status] %>

Я не вижу в этом хэше ничего, называемого :hostidn, просто :host;не уверен, что это опечатка или вы ожидаете, что дополнительные данные не отображаются.

...