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.
52 lines
1.6 KiB
52 lines
1.6 KiB
class Jurisprudence::DoctrinesController < ApplicationController |
|
load_and_authorize_resource :jurisprudence, class: "Cdao::Jurisprudence" |
|
load_and_authorize_resource :doctrine, class: "Doctrine", through: :jurisprudence |
|
|
|
def create |
|
attrs = resource_params.to_unsafe_h.deep_symbolize_keys |
|
subject_ids = attrs.delete(:subject_ids) |
|
|
|
@doctrine = @jurisprudence.doctrines.new(attrs) |
|
|
|
respond_to do |format| |
|
if @doctrine.save |
|
@doctrine.subject_ids = subject_ids if subject_ids.present? |
|
|
|
format.html { redirect_to document_doctrine_path(@jurisprudence, @doctrine), notice: "Doctrine was successfully created." } |
|
else |
|
format.html { redirect_to document_doctrine_path(@jurisprudence) } |
|
end |
|
end |
|
end |
|
|
|
def update |
|
attrs = resource_params.to_unsafe_h.deep_symbolize_keys |
|
subject_ids = attrs.delete(:subject_ids) |
|
|
|
respond_to do |format| |
|
if @doctrine.update(attrs) |
|
@doctrine.subject_ids = subject_ids if subject_ids.present? |
|
|
|
format.html { redirect_to document_doctrine_path(@jurisprudence, @doctrine), notice: "Doctrine was successfully updated." } |
|
else |
|
format.html { redirect_to document_doctrine_path(@jurisprudence) } |
|
end |
|
end |
|
end |
|
|
|
def destroy |
|
respond_to do |format| |
|
if @doctrine.destroy |
|
format.html { redirect_to document_path(@jurisprudence), notice: "Doctrine was successfully destroyed." } |
|
else |
|
format.html { redirect_to document_path(@jurisprudence), alert: @doctrine.errors.full_messages } |
|
end |
|
end |
|
end |
|
|
|
private |
|
|
|
def resource_params |
|
params.permit(:content, subject_ids: []) |
|
end |
|
end
|
|
|