лучший способ - 1) Сортировка обоих массивов, которые используются в первом и втором циклах. 2) если элемент согласован, то разбить внутренний цикл и удерживать значение индекса. 3) при запуске следующей итерации запустите внутренний цикл с индексом удержания.
Вы можете использовать библиотеку json json
Затем вы можете сделать:
jsonArray = [{"content":"1D","createdTime":"09-06-2011 00:59"},
{"content":"2D","createdtime":"09-06-2011 08:00"}]
objArray = JSON.parse(jsonArray)
В ответ на ваш комментарий, вы можете сделать это, пока ваш JSON соответствует вашей модели
objArray.each do |object|
# This is a hash object so now create a new one.
newMyObject = MyObject.new(object)
newMyObject.save # You can do validation or any other processing around here.
end
ActiveSupport::JSON.decode(string)
раскодирует это для вас в восхитительный предмет потребления на стороне сервера.
Если код JavaScript является внутренним, вы можете сделать это:
<script>
var hives = <%=@hives.html_safe%>;
</script>
В противном случае:
создать скрытую текстовую область и установить @ hives.html_safe в качестве значения теперь вы можете получить его в JavaScript в качестве значения элемента, как показано ниже:
В файле html.erb
<%= text_area_tag :hives_yearly_temp, @hives.html_safe, { style: "display: none;"} %>
В js файл
var hives = JSON.parse( $('#hives_yearly_temp').val() );
Для запуска цикла
for(key in hives) {
alert( hives[key] );
}