-
-
Notifications
You must be signed in to change notification settings - Fork 199
Expand file tree
/
Copy pathfeedback_controller.rb
More file actions
43 lines (33 loc) · 1.14 KB
/
feedback_controller.rb
File metadata and controls
43 lines (33 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class FeedbackController < ApplicationController
def show
feedback_request = FeedbackRequest.find_by(token: params[:id], submited: false)
if feedback_request.nil?
flash[:notice] = I18n.t('messages.feedback_not_found')
return redirect_to root_path
end
set_coaches(feedback_request.workshop)
@workshop = feedback_request.workshop
@feedback = Feedback.new
end
def submit
if Feedback.submit_feedback(feedback_params, params[:id])
flash[:notice] = I18n.t('messages.feedback_saved')
redirect_to root_path
else
feedback_request = FeedbackRequest.find_by!(token: params[:id], submited: false)
set_coaches(feedback_request.workshop)
@workshop = feedback_request.workshop
@feedback = Feedback.new(feedback_params)
@feedback.valid?
flash[:alert] = @feedback.errors.full_messages.to_sentence
render 'show'
end
end
private
def feedback_params
params.require(:feedback).permit(:coach_id, :tutorial_id, :request, :rating, :suggestions)
end
def set_coaches(workshop)
@coaches = workshop.invitations.to_coaches.attended.map(&:member)
end
end