Module: ActiveRecord::OracleEnhancedProcedures
- Defined in:
- lib/active_record/connection_adapters/oracle_enhanced/procedures.rb
Overview
Custom create, update, delete methods functionality.
Example:
class Employee < ActiveRecord::Base
include ActiveRecord::OracleEnhancedProcedures
set_create_method do
plsql.employees_pkg.create_employee(
:p_first_name => first_name,
:p_last_name => last_name,
:p_employee_id => nil
)[:p_employee_id]
end
set_update_method do
plsql.employees_pkg.update_employee(
:p_employee_id => id,
:p_first_name => first_name,
:p_last_name => last_name
)
end
set_delete_method do
plsql.employees_pkg.delete_employee(
:p_employee_id => id
)
end
end
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
-
#destroy ⇒ Object
:nodoc:.
Class Method Details
.included(base) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/active_record/connection_adapters/oracle_enhanced/procedures.rb', line 77 def self.included(base) base.class_eval do extend ClassMethods class_attribute :custom_create_method class_attribute :custom_update_method class_attribute :custom_delete_method end end |
Instance Method Details
#destroy ⇒ Object
:nodoc:
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/active_record/connection_adapters/oracle_enhanced/procedures.rb', line 86 def destroy # :nodoc: # check if class has custom delete method if self.class.custom_delete_method # wrap destroy in transaction with_transaction_returning_status do # run before/after callbacks defined in model run_callbacks(:destroy) { destroy_using_custom_method } end else super end end |