class Public::EventFeedbacksController < Public::ApplicationController def new if event.feedbacks.where(session_id: session.id.to_s).exists? @feedback = event.feedbacks.where(session_id: session.id.to_s).order(updated_at: :asc).last else @feedback = event.feedbacks.build @feedback.author_email = Feedback.where(session_id: session.id.to_s).order(updated_at: :asc).last.try(:author_email) end end def create @feedback = event.feedbacks.build(feedback_params) @feedback.ip_address = request.remote_ip @feedback.session_id = session.id.to_s if @feedback.save flash[:notice] = I18n.t("public.event_feedbacks.new.success") redirect_to conference_feedbacks_path else render :new, status: :unprocessable_entity end end private def feedback_params params.require(:feedback).permit(:author_email, :rating, :comment) end def event approved_events.find(params[:event_id]) end def approved_events current_conference.events_of_all_editions.joins(:proposition).approved end end