PageRenderTime 1490ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/app/controllers/admin/pages_controller.rb

https://github.com/seaneshbaugh/portfolio
Ruby | 85 lines | 57 code | 27 blank | 1 comment | 2 complexity | c10201e6e05e9c62fa6bc94c67e5594d MD5 | raw file
  1. # frozen_string_literal: true
  2. module Admin
  3. class PagesController < AdminController
  4. def index
  5. authorize Page
  6. @search = Page.ransack(params[:q])
  7. @pages = @search.result.page(params[:page]).per(25).by_order
  8. end
  9. def show
  10. @page = find_page
  11. authorize @page
  12. end
  13. def new
  14. authorize Page
  15. @page = Page.new
  16. end
  17. def create
  18. authorize Page
  19. @page = Page.new(page_params)
  20. if @page.save
  21. flash[:success] = t('.success')
  22. redirect_to admin_page_url(@page), status: :see_other
  23. else
  24. flash.now[:error] = helpers.error_messages_for(@page)
  25. render 'new', status: :unprocessable_entity
  26. end
  27. end
  28. def edit
  29. @page = find_page
  30. authorize @page
  31. end
  32. def update
  33. @page = find_page
  34. authorize @page
  35. if @page.update(page_params)
  36. flash[:success] = t('.success')
  37. redirect_to edit_admin_page_url(@page), status: :see_other
  38. else
  39. flash.now[:error] = helpers.error_messages_for(@page)
  40. render 'edit', status: :unprocessable_entity
  41. end
  42. end
  43. def destroy
  44. @page = find_page
  45. authorize @page
  46. @page.destroy
  47. flash[:success] = t('.success')
  48. redirect_to admin_pages_url, status: :see_other
  49. end
  50. private
  51. def find_page
  52. Page.friendly.find(params[:id])
  53. end
  54. def page_params
  55. params.require(:page).permit(:title, :body, :style, :script, :meta_description, :order, :color, :show_in_menu, :visible)
  56. end
  57. end
  58. end