require "json" class TranslationsController < ApplicationController before_action :set_problem, only: [:new, :create] before_action :set_accept, only: [:create] # GET /translations/new def new file = File.open "app/controllers/problems.json" problem_json = JSON.load file @original_title = problem_json[@problem.id.to_s]["title"] @original_problem = problem_json[@problem.id.to_s]["problem"] @translation = @problem.translations.build if @problem.is_translated? @translation.title = @problem.translation.title @translation.content = @problem.translation.content end end # POST /translations def create @translation = @problem.translations.new(translation_params) if user_signed_in? @translation.author = current_user end if @translation.save if @accept @problem.set_translation(@translation) redirect_to @problem, notice: t('translations.notice.successfully_created_and_accepted') else redirect_to @problem, notice: t('translations.notice.successfully_created') end else render :new end end private # Never trust parameters from the scary internet, only allow the white list through. def translation_params params.require(:translation).permit(:title, :content) end def set_problem @problem = Problem.find(params[:problem_id]) end def set_accept if user_signed_in? and current_user.admin? @accept = params.fetch(:accept, false) else @accept = false end end end