Forget the last part about the Validator requiring a AR mapping. I just used it wrong.
On Fri, Sep 11, 2009 at 12:48 PM, Daniel Hölbling <[email protected]>wrote: > Splitting the registration into two cases is also a very good Idea. I could > let them complete their profile through the member area. Thanks for the > suggestion. > > Now, off to something else. I tried the DTO approach and just found out > something peculiar: I can't really use the ActiveRecord Validation framework > with that since those DTOs are not in the Database and even for simple stuff > like [ValidateNonEmpty] the Validator requires a AR mapping. > Any suggestions on what Validator I should use? I'm currently tempted to > simply roll my own little validation and be done with it. > > greetings Daniel > > > On Fri, Sep 11, 2009 at 12:39 PM, Gauthier Segay <[email protected] > > wrote: > >> >> > just a ordinary website that is pretty curious about it's members >> >> In my experience, member registration on a public facing website is a >> critical scenario, also being too curious was a weak point of a site I >> took off, since I transformed the registration in a two stage use >> case, the registration / day ratio has climb up drastically. >> >> > I think I'll go with the postback validation since it should be easiest >> to implement. If I feel fancy I'll try the AJAX validation at a later stage. >> >> My current experience is that ajax validation is easier because you >> don't have to mind the form state (it's still on the client DOM), but >> the weak point is that it requires enabled javascript which is not >> mandatory with plain POST implementation. >> >> On Sep 11, 12:25 pm, Daniel Hölbling <[email protected]> wrote: >> > Thanks! >> > >> > The Form-DTO idea is really good. I'll do that.Also I agree Ken, it's a >> > Session-wide operation so that's probably the best way to go about that. >> > >> > I guess what impaired my thinking on this one was that every step of the >> > Wizard corresponded to one Component in my Entity. >> > My current approach was to save every step into the session and the last >> > Step then pushes them together into the Entity and validates that >> (leaving >> > me with issues on how to correct validation errors). >> > >> > Thanks again. I'll try your suggestions and maybe compile them into a >> help >> > topic for the users guide. >> > >> > @Gauthier: Oh, I guess you did mistake my use-case. It's the most >> > un-critical thing in the world anyone will ever build :) (just a >> ordinary >> > website that is pretty curious about it's members). >> > I think I'll go with the postback validation since it should be easiest >> to >> > implement. If I feel fancy I'll try the AJAX validation at a later >> stage. >> > >> > greetings Daniel >> > >> > On Fri, Sep 11, 2009 at 12:01 PM, Gauthier Segay >> > <[email protected]>wrote: >> > >> > >> > >> > >> > >> > > I'm not used to the MR wizard but here are some thoughts: >> > >> > > - instead of validating a fullfledged DB entity, you could validate >> > > plain Form DTO that match each registration steps, monorail controller >> > > has a validator runner that you can use on any DTO bringing validation >> > > attributes >> > > - if session feel like unsecure storage (I feel the same way), isn't >> > > there a possibility to store each form DTO in a serialized form in a >> > > DB table that would be purged for expired / incomplete registration >> > >> > > theses look like extra work, but your usecase seems a bit critical and >> > > it's better to design with more separation rather than making that at >> > > a later stage >> > >> > > For the ajax instant validation, it depends if you want full fledged >> > > validation (ie: validating every rules) or can accomodate only >> > > validate simplest rules (that is mandatory fields, email format, group >> > > non empty) >> > >> > > For the simplest rules, using FormHelper with Validation enabled DTO + >> > > JQuery validation support would help, but it's still limitated to some >> > > validation attributes, this works without AJAX/reaching the server >> > >> > > for more complex things (unique member name checked on server side, >> > > etc.) there is two ways I can think about: >> > >> > > - ajax enabled way: having a controller action handling the form >> > > (ajax) POST returning JSON and use that JSON to handle validation >> > > feedback >> > >> > > - get post redirect way: having a controller action handling the form >> > > POST performing a redirect on the next page if everything is ok, or >> > > redirect to the initial form if there is any failed validation, >> > > passing the form DTO in Flash (which is backed in Session), there >> > > again using FormHelper would help to restore the state of the form as >> > > it was submitted >> > >> > > Let us know if you have any specific questions according to your >> > > implementation choices >> > >> > > I hope this helps >> > >> > > On Sep 11, 11:30 am, Daniel Hölbling <[email protected]> wrote: >> > > > Hi, >> > > > I'm currently building a Registration form for my MonoRail >> application >> > > and >> > > > there is a LOT of data to be entered by the user. >> > > > So I decided to split it through using a Wizard interface. >> > >> > > > I just feel a bit at a loss what the best way would be to carry that >> > > > intermediary data from Step to Step. >> > > > I obviously can't put it in the DB or I'd see bad records in the >> Database >> > > > hat need to be cleaned up afterwards. >> > > > On the other hand I don't really feel comfortable putting that Data >> into >> > > the >> > > > Session. >> > >> > > > Another problem I see is Validation: >> > > > Since I am hydrating only one entity from the Form, the ActiveRecord >> > > > validator will always report invalidity until the very last step >> when all >> > > > required fields have been met. >> > > > I'd really like to do some sort of AJAX instant validation on that >> form, >> > > so >> > > > how do I query the validity of exactly one field? >> > >> > > > Does anyone have experience with the Wizards and can share some >> wisdom on >> > > > how to use it without the solution getting too complicated? >> > >> > > > greetings Daniel >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---
