class DoctrinesController < ApplicationController include DoctrineSearch include AnnotationSearch load_and_authorize_resource :doctrine, class: "Doctrine" def new; end def edit; end def index @search = doctrine_search(search_params) @doctrines = @search.results respond_to do |format| format.html end end def search @search = doctrine_search(search_params) @search_results = @search.results respond_to do |format| format.html end end def show @jurisprudence = @doctrine.doctrine_jurisprudences.present? ? @doctrine.doctrine_jurisprudences.first.jurisprudence : nil search = annotation_search({ doctrine_id: @doctrine.id }) @annotations = search.results end def create attrs = resource_params.to_unsafe_h.deep_symbolize_keys subject_ids = attrs.delete(:subject_ids) @doctrine = Doctrine.new(attrs) if @doctrine.save @doctrine.subject_ids = subject_ids if subject_ids.present? respond_with @doctrine else render errors: @doctrine.errors, status: 422 end end def update attrs = resource_params.to_unsafe_h.deep_symbolize_keys subject_ids = attrs.delete(:subject_ids) if @doctrine.update(attrs) @doctrine.subject_ids = subject_ids if subject_ids.present? respond_with @doctrine else render errors: @doctrine.errors, status: 422 end end def destroy @doctrine.destroy respond_with @doctrine end private def resource_params params.permit(:content, :headnote, jurisprudence_ids: [], subject_ids: []) end def search_params params.permit(:page, :per_page, jurisprudence_ids: [], subject_ids: []) end end