SkillAgentSearch skills...

Questionable

A Rails engine that programatically generates surveys

Install / Use

/learn @bespokepost/Questionable
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

= Questionable

Questionable is a Rails engine that make it easier to create and answer surveys through a web interface.

After creating assignments, questions and options, you can use the included partial template and controller for displaying the questions and recording your users' answers.

== Installation

Add Questionable to your Gemfile:

gem 'questionable_surveys'

or for the latest:

gem 'questionable_surveys', :git => 'git://github.com/bespokepost/questionable.git'

Then run:

bundle install rake questionable:install:migrations rake db:migrate

Add Questionable to your config/routes.rb:

mount Questionable::Engine, :at => 'questions'

Optionally add the following to app/assets/stylesheet/application.css:

*= require questionable

== Usage

=== Create some questions

Create one or more Questions. Supported input_types include select, multiselect, radio, checkboxes, date, and string.

input_type may be select, multiselect, radio, checkboxes, date, or string.

q = Questionable::Question.create(title: 'What is your favorite color?', input_type: 'select', note: 'This is important')

Add Options, unless input_type is 'string'

q.options.create(title: 'Red', position: 1) q.options.create(title: 'Green', position: 2) q.options.create(title: 'Blue', position: 3)

Questions must be assigned a 'subject' before they are used. They subject can be either an object, via a polymorphic association, or something general like "preferences", which we can pass here as a symbol or string.

e.g.

@product = Product.find(123) Questionable::Assignment.create(question_id: q.id, subject: @product)

or

Questionable::Assignment.create(question_id: q.id, subject_type: 'preferences')

=== In your controller

Here's how we fetch question-assignments for a particular symbol:

@assignments = Questionable::Assignment.with_subject(:preferences)

and here, for a product object:

@product = Product.find(params[:id]) @assignments = Questionable::Assignment.with_subject(@product)

=== In your view

With HAML

= render partial: 'questionable/assignments/form', locals: { assignments: @assignments }

Or ERB

<%= render partial: 'questionable/assignments/form', locals: { assignments: @assignments } %>

=== Running Tests

rake spec

== Author

Written by {Nick Urban}[https://github.com/nickurban/] at {Bespoke Post}[https://www.bespokepost.com/].

== Licence

This project uses the MIT-LICENSE.

View on GitHub
GitHub Stars11
CategoryDevelopment
Updated4y ago
Forks9

Languages

Ruby

Security Score

75/100

Audited on Sep 28, 2021

No findings