ActiveModel is a class to be implemented by each ORM to allow Rails to generate customized controller code.
The API has the same methods as ActiveRecord, but each method returns a string that matches the ORM API.
For example:
ActiveRecord::Generators::ActiveModel.find(Foo, "params[:id]") # => "Foo.find(params[:id])" Datamapper::Generators::ActiveModel.find(Foo, "params[:id]") # => "Foo.get(params[:id])"
On initialization, the ActiveModel accepts the instance name that will receive the calls:
builder = ActiveRecord::Generators::ActiveModel.new "@foo" builder.save # => "@foo.save"
The only exception in ActiveModel for ActiveRecord is the use of self.build instead of self.new.
[R] | name |
GET index
Source: show
# File railties/lib/rails/generators/active_model.rb, line 34 def self.all(klass) "#{klass}.all" end
GET new POST create
Source: show
# File railties/lib/rails/generators/active_model.rb, line 48 def self.build(klass, params=nil) if params "#{klass}.new(#{params})" else "#{klass}.new" end end
GET show GET edit PUT update DELETE destroy
Source: show
# File railties/lib/rails/generators/active_model.rb, line 42 def self.find(klass, params=nil) "#{klass}.find(#{params})" end
Source: show
# File railties/lib/rails/generators/active_model.rb, line 29 def initialize(name) @name = name end
DELETE destroy
Source: show
# File railties/lib/rails/generators/active_model.rb, line 73 def destroy "#{name}.destroy" end
POST create PUT update
Source: show
# File railties/lib/rails/generators/active_model.rb, line 68 def errors "#{name}.errors" end
POST create
Source: show
# File railties/lib/rails/generators/active_model.rb, line 57 def save "#{name}.save" end
PUT update
Source: show
# File railties/lib/rails/generators/active_model.rb, line 62 def update_attributes(params=nil) "#{name}.update_attributes(#{params})" end