ORM::ActiveRecord now has support for has-many through relationships.

For example, a user has access to magazines through the subscriptions relationship:

class Subscription {...} # stub

class User is Model {
  submethod BUILD {
    self.has-many: subscriptions => class => Subscription;
    self.has-many: magazines => through => :subscriptions;
  }
}

class Magazine is Model {}

class Subscription is Model {
  submethod BUILD {
    self.belongs-to: user => class => User;
    self.belongs-to: magazine => class => Magazine;
  }
}

my $user = User.create({fname => 'Greg'});
my $magazine = Magazine.create({title => 'Mad'});
Subscription.create({:$user, :$magazine});

say $user.magazines.first == $magazine;

   Page Updates
ORM::ActiveRecord
Template::HAML
BDD::Behave
Console::Blackjack
   Recent Articles
Console Blackjack in Perl
Selenium::WebDriver::Error::UnknownError
Game of Life in C++ using the SDL2
PigPen (dots and boxes) in C++ using the SDL2
GUI TicTacToe in C++ using the SDL2
   Tags
active-record (1) android (1) bash (2) bashrc (1) battleship (1) bdd (0) blackjack (11) book (1) books (1) build (1) c (2) c++ (2) capybara (1) clang (1) clang++ (1) console (4) cpp (2) crm (1) crystal (1) data (1) debian (5) diff (1) elixir (1) fedora (1) firewall (1) freebsd (1) g++ (1) game (4) games (1) gcc (1) gem (1) git (3) github (1) gmail (1) go-lang (3) google-chrome (1) haml (0) infix (1) kernel (3) latin1 (1) life (1) linux (4) lottery (1) meta (1) microsoft (1) moarvm (1) model (1) module (1) mongodb (1) mp3s (1) mutt (1) nautical (1) nqp (1) object (1) operator (1) orm (1) pairing (1) pair-programming (1) patch (1) perl (1) pigpen (1) postgresql (2) powerball (1) programming (1) psql (1) python (2) python3 (1) raku (10) raspberrypi (1) reactjs (2) readline (1) reversi (1) ruby (1) sdl2 (4) sed (1) selenium (1) selinux (1) split (1) ssh (1) stack (1) template (0) testing (2) tictactoe (1) trace (1) typescript (2) ubuntu (2) utf8 (1) virus (1) war (1) xvfb (1) zef (1)
   Twitter

Copyright © 2005 - 2020

GregDonald.com · Contact

All Rights Reserved