You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

81 lines
1.7 KiB

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)
@results = @search.results
@uniq_by_headnotes = @results.uniq(&:headnote)
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