[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