Project

ask

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
Allow your site's maintainers to easily create forms.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

>= 0.1.2
>= 0.8.0
~> 3.1.3
>= 3.1.0
 Project Readme

Ask

Ask is a Rails engine that provides tools to simplify the process of letting your app's users build forms for things like questionnaires or surveys.

Requirements

  • Rails 3.1 or higher
  • jQuery
  • jQuery UI
  • Uses Carrierwave for uploads

More information will be on the wiki.

Installation

Add to your Gemfile:

gem 'ask'

In your terminal run:

bundle
rake ask_engine:install:migrations
rake db:migrate

Usage

Ask needs to be tied to two models in your application: an "asker" and an "answerer". The asker model should be the model that has questions, such as a Survey or Event. The answerer model should be the model that has answers to the questions such as a SurveySubmission or an EventRegistration.

In your asker model add:

acts_as_asker

In your answerer model add:

acts_as_answerer

In your asker form views, inside an already defined form_for helper add:

<%= render(:partial => 'asker/form', :locals => { :f => f }) %>

In your answerer form views, inside an already defined form_for helper add:

<%= render(:partial => 'answerer/form', :locals => { :f => f }) %>

In your javascript manifest file add:

//= require ask

In your stylesheet manifest file add:

/*  
*= require ask  
*/

If you want your form to start with one question, you can do the following... In your asker controller's new and edit methods you'll need to build the first question and choice. The best way to do this is create a private method:

def build_questions
  @event.questions.build
  @event.questions.each{|q| q.choices.build}
end

Then at the top of your asker controller, include:

before_filter :build_questions, :only => [:new, :edit]
# or you can call the build_questions method inside the new or edit controller

In your answerer controller's new and edit methods you'll need to call build_or_create_answers and pass it in the appropriate questions. Such as:

@event_registration.build_or_create_answers @event_registration.event.questions

Finally you'll need to define an asker method on your answerer model, like so:

class EventRegistration < ActiveRecord::Base
  def asker  
    return event  
  end
end

Configuration

If you want to changed the default whitelisted file types for upload questions, just drop this into an initializer file.

Ask.configure do |config|
  @upload_whitelist = %w(jpg jpeg gif png doc docx txt pdf xls xlsx zip)
end

Build Status

Build Status

License

MIT License