Module: Fe::AnswerPagesControllerConcern
- Extended by:
- ActiveSupport::Concern
- Included in:
- AnswerPagesController
- Defined in:
- app/controllers/fe/concerns/answer_pages_controller_concern.rb
Instance Method Summary collapse
- #edit ⇒ Object
- #save_file ⇒ Object
-
#update ⇒ Object
validate and save captured data for a given page PUT /answer_sheets/1/pages/1.
Instance Method Details
#edit ⇒ Object
11 12 13 14 15 16 |
# File 'app/controllers/fe/concerns/answer_pages_controller_concern.rb', line 11 def edit @elements = @presenter.questions_for_page(params[:id]).elements @page = Fe::Page.find(params[:id]) || Fe::Page.find_by_number(1) render :partial => 'answer_page', :locals => { :show_first => nil } end |
#save_file ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'app/controllers/fe/concerns/answer_pages_controller_concern.rb', line 49 def save_file params.permit(:Filedata) if params[:Filedata] @page = Fe::Page.find(params[:id]) @presenter.active_page = @page question = Fe::Element.find(params[:question_id]) answer = Fe::Answer.where(:answer_sheet_id => @answer_sheet.id, :question_id => question.id).first question.answers = [answer] if answer @answer = question.save_file(@answer_sheet, params[:Filedata]) render action: :update else respond_to do |format| format.js { head :ok } end end end |
#update ⇒ Object
validate and save captured data for a given page PUT /answer_sheets/1/pages/1
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'app/controllers/fe/concerns/answer_pages_controller_concern.rb', line 20 def update @page = Fe::Page.find(params[:id]) questions = @presenter.all_questions_for_page(params[:id]) questions.post(answer_params, @answer_sheet) questions.save @elements = questions.elements # Save references if params[:reference].present? params[:reference].keys.each do |id| reference_params = params.fetch(:reference)[id].permit(:relationship, :title, :first_name, :last_name, :phone, :email, :is_staff) ref = @answer_sheet.reference_sheets.find(id) # if the email address has changed, we have to trash the old reference answers ref.attributes = reference_params ref.save(:validate => false) end end @presenter.active_page = nil @answer_sheet.touch respond_to do |format| format.js #format.html end end |