mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
33 lines
1 KiB
Text
33 lines
1 KiB
Text
= Active Model - defined interfaces for Rails
|
|
|
|
Prior to Rails 3.0, if a plugin or gem developer wanted to be able to have
|
|
an object interact with Action Pack helpers, it was required to either
|
|
copy chunks of code from Rails, or monkey patch entire helpers to make them
|
|
handle objects that did not look like Active Record. This generated code
|
|
duplication and fragile applications that broke on upgrades.
|
|
|
|
Active Model is a solution for this problem.
|
|
|
|
Active Model provides a known set of interfaces that your objects can implement
|
|
to then present a common interface to the Action Pack helpers.
|
|
|
|
You can include functionality from the following modules:
|
|
|
|
* Callbacks
|
|
|
|
class MyClass
|
|
extend ActiveModel::Callbacks
|
|
define_model_callbacks :create
|
|
|
|
def create
|
|
_run_create_callbacks do
|
|
# Your create action methods here
|
|
end
|
|
end
|
|
end
|
|
|
|
...gives you before_create, around_create and after_create class methods that
|
|
wrap your create method.
|
|
|
|
{Learn more}[link:classes/ActiveModel/CallBacks.html]
|
|
|