Sha256: 9b49a09fbf0167ff3433a3ceaad36a15fecc69d61137d46ee7f0387be2363a2d
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
# frozen_string_literal: true require_dependency 'c/admin_controller' module C class Admin::ProjectsController < AdminController before_action :load_from_url, only: [:edit, :update, :destroy] load_and_authorize_resource class: C::Project def index @projects = filter_and_paginate(@projects, 'created_at desc') end def create @project = C::Project.new(project_params) if @project.save redirect_to projects_path, notice: 'Project created' else render :new end end def update if params[:commit] == 'upload' @project.assign_attributes(new_image_params) render :edit elsif @project.update(project_params) redirect_to projects_path, notice: 'Project updated' else render :edit end end def destroy @project.destroy respond_to do |format| format.js format.html { redirect_to projects_path } end end private def load_from_url @project = C::Project.get_from_url(params[:id]) end def new_image_params params.require(:project).permit(new_images: [], images_attributes: [:id, :_destroy, :alt, :caption]) end def project_params params.require(:project).permit(:name, :body, :published, :url_alias, C::Page::IMAGEABLE_ATTRIBUTES, C::Page::PAGE_INFO_ATTRIBUTES, new_images: []) end end end
Version data entries
3 entries across 3 versions & 1 rubygems