|
|
|
|
|
by chris12321
403 days ago
|
|
It's been widely understood in the Ruby community for some time now that metaprogramming—like in the example above—should generally be limited to framework or library code, and avoided in regular application code. Dynamically generated methods can provide amazing DX when used appropriately. A classic example from Rails is belongs_to, which dynamically defines methods based on the arguments provided: class Post < ApplicationRecord
belongs_to :user
end This generates methods like: post.user - retrieves the associated user post.user=(user) - sets the associated user post.user_changed? - returns true if the user foreign key has changed. |
|