[LRUG] Questionnaire engine
Ed James
ed.james.spam at gmail.com
Thu Jul 23 03:15:24 PDT 2020
Thanks for the feedback everyone.
Very useful.
Ed James
I will respect your spam <mailto:ed.james.spam at gmail.com>
> On 23 Jul 2020, at 10:01, Andrew Premdas <apremdas at gmail.com> wrote:
>
> For wizards on Rails I personally prefer a full controller, views, and model for each stage in the wizard. I came to this conclusion after using wicked amongst other things. At first this seems counter-intuitive, overkill, and far to complex but it has several benefits.
>
> - you have full control
> - conditional validation is super easy, and very clear
> - conditional routing depending on step results is fairly straightforward
> - you progress is recorded each time you submit a step
> - you don't have to do anything in js
>
> As far as the models go, you just create your basic rails model. Then for each stage in the wizard you subclass the model (I store these in form_models). So you get something like
>
> class Tax::AdditionalIncome < Tax
> validates: xxx
> validates: yyy
> ...
> end
>
> The same applies to controllers and views, everything is just the same as bog standard rails form. This approach is initially a lot slower, creating each step takes more time, but you more than make up for that when you have to tweak steps, change orders etc. etc.
>
> All best
>
> Andrew
>
>
> On Wed, 22 Jul 2020 at 10:37, Ed James <ed.james.spam at gmail.com <mailto:ed.james.spam at gmail.com>> wrote:
> Hi all
>
> Does anyone have any experience with building out a complex questionnaire engine?
> I’m very interested in hearing what people have done and whether you wrote from scratch or used any 3rd-party tools/gems/etc.
>
> Some of the things I need to be able to handle are:
>
> Complex routing through the questionnaire based on answers to previous question(s)
> Scoring/weighting of answers to calculate a final score
> Grouping of weighted questions to allow for score calculations of “question groups”
> Ability to “resume” questionnaire
> Ability to “go back” through previous questions to change answers before completion
>
> Any advice/insights would be greatly appreciated.
>
> Thanks!
>
>
> Ed James
> I will respect your spam <mailto:ed.james.spam at gmail.com>
> _______________________________________________
> Chat mailing list
> Chat at lists.lrug.org <mailto:Chat at lists.lrug.org>
> Archives: http://lists.lrug.org/pipermail/chat-lrug.org <http://lists.lrug.org/pipermail/chat-lrug.org>
> Manage your subscription: http://lists.lrug.org/options.cgi/chat-lrug.org <http://lists.lrug.org/options.cgi/chat-lrug.org>
> List info: http://lists.lrug.org/listinfo.cgi/chat-lrug.org <http://lists.lrug.org/listinfo.cgi/chat-lrug.org>
>
>
> --
> ------------------------
> Andrew Premdas
> blog.andrew.premdas.org <http://blog.andrew.premdas.org/>_______________________________________________
> Chat mailing list
> Chat at lists.lrug.org
> Archives: http://lists.lrug.org/pipermail/chat-lrug.org
> Manage your subscription: http://lists.lrug.org/options.cgi/chat-lrug.org
> List info: http://lists.lrug.org/listinfo.cgi/chat-lrug.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20200723/a94c8b43/attachment.html>
More information about the Chat
mailing list