Should I use the validation framework (e.g. add_to_base) to pass back multiple data errors that are

Hi,

I have an “automation” model with some config data. When it runs it
looks
across other models and does some matching, however it also builds up a
list
of “duplicate data” type issues identified as part of the routine.

In terms of how I capture this array of duplicate data issues and pass
to a
view for display what would Rails best practice suggest? For example:

  • use validation framework (e.g. add_to_base, and then the helper tags
    to
    display) even though the data is not associated with attributes in the
    model
  • extend an application_error Exception to include an Array
  • just use an array to pass back to controller, which stores as an
    instance
    variable (@duplicates) and write custom code to display in view (i.e.
    won’t
    use error/validation tags)

thanks


Greg
http://blog.gregnet.org/

(bump)

On Tue, Jan 20, 2009 at 5:00 PM, Greg H. <
[email protected]> wrote:

  • extend an application_error Exception to include an Array


Greg
http://blog.gregnet.org/

I don’t necessarily see what’s wrong with add_to_base. Seems somewhat
logical to me but I don’t really know what you’re attempting to do :slight_smile:

On Tue, Jan 20, 2009 at 7:09 PM, Greg H.

I suppose I was questioning whether from a best practice position
whether
using Rails input validation framework (focused at the model level), for
collecting non-severe error messages that cut across a whole controller
action (e.g. multiple models may be involved), and for which they are
not
focused at input validation but rather error that occuring during
processing, for the purpose of bundling these up and passing to a view
and
displaying? hope this makes sense in terms of clarifying my Rails best
practice question.

On Wed, Jan 21, 2009 at 11:32 AM, Brian H. [email protected] wrote:

a view for display what would Rails best practice suggest? For example:

Greg
http://blog.gregnet.org/


Greg
http://blog.gregnet.org/

You could always go with the “business logic always goes in models”
rule, and the easy implementation is to do what you’re doing. Or you
could build a brand new model with its own errors collection to
encapsulate what it is you’re doing (presenter pattern?). I don’t
think there’s really a best practice for this… if you can justify
the use to yourself based on what business rules you’re trying to
implement, that may be your best practice. :slight_smile:

My rule is always that NOTHING goes in the controller. A lot of times
I’ve done an after_validation callback and shoved stuff into the
errors.base before. Done stuff with cc processing that way too.

I’d love to hear from others on this too.

On Tue, Jan 20, 2009 at 8:13 PM, Greg H.