В конкретном случае в Вашем примере я использовал бы алгоритмы STL для выполнения этого.
#include <numeric>
sum = std::accumulate( polygon.begin(), polygon.end(), 0 );
Для более общего, но все еще довольно простого случая, я пошел бы с:
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
using namespace boost::lambda;
std::for_each( polygon.begin(), polygon.end(), sum += _1 );
Seems, rails can handle multiple levels of nesting. This is the code that I ended up with.
<%= @ltest.to_xml(:include => {
:test_group => { :include => [ :user ]},
:sub_tests => { :include => {
:attachments => {},
:errors => {},
:test_bugs => {},
} },
:attachments => {},
:errors => {},
:test_bugs => {},
:test_nodes => { :include => {
:node => { :include => [ :networks ]},
:attachments => {},
}}
} ) %>
Выполнение этого в представлении show.xml.erb
сработало.
<%= @ltest.to_xml :include => [ :sub_tests ]%>
Однако объекты, вложенные внутри sub_tests (test_logs, errors), не учитываются.
Вам, вероятно, следует использовать для этого конструктор xml. http: //www.xml. com / pub / a / 2006/01/04 / create-xml-with-ruby-and-builder.html
Для этого не нужно использовать builder или erb. Вы можете получить то, что хотите, в контроллере (по крайней мере, я могу в рельсах 2.3.4) вот так:
format.xml { render :xml => @ltest.to_xml(:include => :sub_tests) }