Skip to content

ActiveModel Association. "has_many" to any object that responds to ActiveModel methods

Notifications You must be signed in to change notification settings

trevorgrayson/silver_spoon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SilverSpoon

In this world there are the has, and the has nots. ActiveRecord can has_many other ActiveRecords, but what about the rest of us? SilverSpoon lets ActiveRecord objects has_many Non-ActiveRecord objects, or for Non-ActiveRecord objects to has_many other Non-ActiveRecord objects.

For the people!

Suppose you have a plain old ActiveModel

class BankAccount
  class << self
    def find(args)
      HTTP Request...
      an arbitrary service...
      or some awful local Modeling logic...
      ...
    end
  end
end

And another Object that bares an association to it

class User < ActiveRecord::Base
  extend SilverSpoon::ActiveConcern

  has_many :bank_accounts
end

Now make calls a la ActiveRecord Association

user = User.new

user.bank_accounts

The referencing class does not have to be an ActiveRecord object. It simply needs to respond to a find method as you would expect. Having an @id or to_params would be useful as well in most cases. It would also be nice if there was a save method, if you're going to be doing something like that.

The find method may receive the id from the referring object to associate the two.

About

ActiveModel Association. "has_many" to any object that responds to ActiveModel methods

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages