jRuby хэш итерация новичок здесь - PullRequest
0 голосов
/ 07 декабря 2011

Я очень плохо знаком с рельсами в целом, и у меня есть хеш, передаваемый как json для одного формата, и теперь мне нужно передать его в представление для работы, но я не знаю, как перебрать хеш для заставить это работать в представлении, поскольку я должен сделать некоторый тип каждого цикла по нему. Это двумерный хэш, не знаю, означает ли это что-нибудь или нет.

редактировать

пример

{"status":"successful","service_list":[{"service_name":"mySQL","status":"RUNNING","status_message":"No errors reported","host":"1"},{"service_name":"PHP","status":"RUNNING","status_message":"No errors reported","host":"1"},{"service_name":"APache","status":"RUNNING","status_message":"No errors reported","host":"1"},{"service_name":"Jetty","status":"RUNNING","status_message":"No errors reported","host":"1"}]}

Это прекрасно, когда я делаю это как JSON, но при использовании того же самого метода для рендеринга в представлении на основе HTML я застреваю

1 Ответ

1 голос
/ 07 декабря 2011

Вы преобразовали Ruby в хэш JSON, который является форматом Javascript.В Ruby вы получите доступ к хешу следующим образом:

hash = {"foo": "bar"}
puts hash["foo"] # This returns "bar"

JSON аналогичен Ruby и доступен тем же способом:

var hash = {"foo": "bar"};
alert(hash["foo"]); # This alerts "bar"

Если вы хотите выполнить итерации через этоколлекция в Javascript, вы можете использовать цикл for:

var data = {"status":"successful","service_list":[{"service_name":"mySQL","status":"RUNNING","status_message":"No errors reported","host":"1"},{"service_name":"PHP","status":"RUNNING","status_message":"No errors reported","host":"1"},{"service_name":"APache","status":"RUNNING","status_message":"No errors reported","host":"1"},{"service_name":"Jetty","status":"RUNNING","status_message":"No errors reported","host":"1"}]};
for(x=0;x<data["service_list"].length;x++) {
  alert(data["service_list"][x]["service_name"]); # This returns "mySQL", ...
};

Если вы хотите преобразовать этот объект JSON в Ruby, вы можете вызвать "JSON.parse" со строкой JSON в качестве аргумента.

...