mmibordeaux/teach

View on GitHub
app/controllers/fields_controller.rb

Summary

Maintainability
A
1 hr
Test Coverage
class FieldsController < ApplicationController
  load_and_authorize_resource

  add_breadcrumb 'Champs', :fields_path

  def index
    @fields = Field.root.sorted
    @title = 'Champs'
    @subtitle = 'Structuration par domaines des enseignements et des métiers'
  end

  def show
    @title = @field
  end

  def new
    @field = Field.new
  end

  def edit
  end

  def create
    @field = Field.new(field_params)

    respond_to do |format|
      if @field.save
        format.html { redirect_to @field, notice: 'Field was successfully created.' }
        format.json { render :show, status: :created, location: @field }
      else
        format.html { render :new }
        format.json { render json: @field.errors, status: :unprocessable_entity }
      end
    end
  end

  def update
    respond_to do |format|
      if @field.update(field_params)
        format.html { redirect_to @field, notice: 'Field was successfully updated.' }
        format.json { render :show, status: :ok, location: @field }
      else
        format.html { render :edit }
        format.json { render json: @field.errors, status: :unprocessable_entity }
      end
    end
  end

  def destroy
    @field.destroy
    respond_to do |format|
      format.html { redirect_to fields_url, notice: 'Field was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private

  def field_params
    params.require(:field).permit(:label, :color, :parent_id, :position, teaching_module_ids: [], user_ids: [])
  end
end