Hello,
We ran into a problem recently - we have quite complex form that is used to
edit multiple "rows" of data. This means we have input structure like this:
<input type="text" name="row_1" />
<input type="text" name="row_2" />
<input type="text" name="row_n" />
There can be also additional data related to each row so:
<input type="radio" name="row_1_type" />
<input type="radio" name="row_1_category" />
With old Mason we could just use %ARGS and process it manually with regexps
and create nested array-hash structure:
[0] => { name => ..., type => ..., category => ... },
[1] => { name => ..., type => ..., category => ... },
[n] => { name => ..., type => ..., category => ... }
But Mason2 uses Moose constructor and requires parameters to be defined as
attributes - its obvious defining every possible number of such row data
will be very tedious and ugly:
<%class>
has 'row_1_name';
has 'row_1_type';
has 'row_1_category'
.
.
.
has 'row_n_name';
has 'row_n_type';
has 'row_n_category'
</%class>
How to solve this problem in a Mason2 way? Some frameworks allow to use
naming convention with square brackets that describe nested nature of input
data:
<input type="text" name="row[1][name]" />
<input type="radio" name="row[1][type]" />
etc. but I don't think Mason2 supports this. Would it be possible to create
some pre-processing method that would prepare data in such format for
passing into Moose constructor, so we could use more advanced Moose
attributes for GET data, and just pre-process it before it reaches the
actual component? Or is there a better way?
Other way to do this I think is to use class meta methods and just create
needed attributes on runtime, this would save a lot of typing, but we still
are not flexible, as we need to generate certain number of input rows, and
if we receive one more row it will break.
Mason2 is great so far, but sometimes we run into problems when doing more
advanced stuff thats not described anywhere. Hope someone can point us in
the right direction.
Regards,
KN
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_sfd2d_oct
_______________________________________________
Mason-users mailing list
Mason-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mason-users