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, 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 defined. Normally ...
Get Agile Web Development with Rails 5, 1st Edition 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.