Sha256: 1e930b6d49c7a8712137c2067252afb1d4c313e4f47b33d42089ed431fc32b98

Contents?: true

Size: 502 Bytes

Versions: 5

Compression:

Stored size: 502 Bytes

Contents

module ActiveRecordExtras
  module Relation
    extend ActiveSupport::Concern

    module ClassMethods

      def update_or_create(attributes = {})
        assign_or_new(attributes).save
      end

      def update_or_create!(attributes = {})
        assign_or_new(attributes).save!
      end

      def assign_or_new(attributes)
        obj = first || new
        obj.assign_attributes(attributes)
        obj
      end
    end
  end
end

ActiveRecord::Base.send :include, ActiveRecordExtras::Relation

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
camaleon_cms-0.1.4 config/initializers/active_record_extension.rb
camaleon_cms-0.1.3 config/initializers/active_record_extension.rb
camaleon_cms-0.1.2 config/initializers/active_record_extension.rb
camaleon_cms-0.0.2 config/initializers/active_record_extension.rb
camaleon_cms-0.0.1 config/initializers/active_record_extension.rb