Module: VerifiableModel::ClassMethods

Defined in:
lib/coadjutor/verifiable_model.rb

Instance Method Summary collapse

Instance Method Details

#verify_model_exists(model = nil, options = {}) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/coadjutor/verifiable_model.rb', line 5

def verify_model_exists(model = nil, options = {})
  exceptions = options[:except] || i{create index}
  model      ||= name[/::(\w+)Controller\z/, 1].
                          singularize.
                          downcase

  before_action except: exceptions do
    model_instance = public_send(model)

    fail HumanError::Errors::ResourceNotFoundError.new(
      resource_name: model,
      resource_id:   params[:id],
    ) unless model_instance.persisted?
  end
end