Sha256: e96d16c7d04ecb016ca0c0ad6a5d80b2abd885600e46af5aa59b79b56918eb9d
Contents?: true
Size: 1.73 KB
Versions: 131
Compression:
Stored size: 1.73 KB
Contents
module Rails module Generators # 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. # class ActiveModel attr_reader :name def initialize(name) @name = name end # GET index def self.all(klass) "#{klass}.all" end # GET show # GET edit # PATCH/PUT update # DELETE destroy def self.find(klass, params=nil) "#{klass}.find(#{params})" end # GET new # POST create def self.build(klass, params=nil) if params "#{klass}.new(#{params})" else "#{klass}.new" end end # POST create def save "#{name}.save" end # PATCH/PUT update def update(params=nil) "#{name}.update(#{params})" end # POST create # PATCH/PUT update def errors "#{name}.errors" end # DELETE destroy def destroy "#{name}.destroy" end end end end
Version data entries
131 entries across 126 versions & 11 rubygems