Organizing Structures
Ruby has two basic concepts for organizing methods: classes and modules. We cover each in turn.
Classes
Here’s a Ruby class definition:
1: | class Order < ApplicationRecord |
- | has_many :line_items |
- | def self.find_all_unpaid |
- | self.where('paid = 0') |
5: | end |
- | def total |
- | sum = 0 |
- | line_items.each {|li| sum += li.total} |
- | sum |
10: | end |
- | end |
Class definitions start with the class keyword and are followed by the class name (which must start with an uppercase letter). This Order class is defined to be a subclass of the ApplicationRecord class.
Rails makes heavy use of class-level declarations. Here, has_many is a method that’s defined by Active Record. It’s called as the Order class is being ...
Get Agile Web Development with Rails 7 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.