Staying organized
As your Phlex application grows, maintaining a clean and logical organization becomes crucial for long-term maintainability. This section covers best practices for organizing your components and views to keep your codebase scalable and easy to navigate.
Organizing files
Views
Views should be organized to mirror your applicationβs routing structure. Since views typically correspond to controller actions, consider organizing them by controller or functional area:
app/views/
βββ base.rb
βββ home.rb
βββ about.rb
βββ users/
β βββ index.rb
β βββ show.rb
β βββ edit.rb
βββ admin/
βββ dashboard.rb
βββ users/
βββ index.rb
βββ show.rb
This structure makes it easy to locate the view file for any given route in your application.
Components
π Unlock content
Pre-order this course to unlock this video, source code, and content.
ββββββββββ ββββββ ββ βββββββββ ββ βββββ βββββββ βββ ββββββββββββ βββββ ββββ β ββββ βββββββββ βββ ββββββ ββββββββββββββ ββ ββββββββ βββββββ
app/components/
βββ base.rb
βββ button.rb
βββ card.rb
βββ modal.rb
βββ forms/
β βββ base.rb
β βββ input.rb
β βββ select.rb
βββ navigation/
β βββ header.rb
β βββ sidebar.rb
β βββ breadcrumb.rb
βββ admin/
βββ table.rb
βββ sidebar.rb
βββββ βββββββ ββββββββββ ββββββββ ββ βββββββββββββββ βββ βββββ ββββββββ βββ ββββ ββββββ ββββββ ββββ ββββ ββββββββββ ββββ ββ βββββ
Namespaces
βββββββββββ βββββββ βββββββββ ββ ββββ βββββββββββ ββββββ ββ βββββ βββββββ ββββββ βββββββββ βββ ββββββββ βββββββ ββββββββ βββ βββββββ ββββββββββ βββ ββββββ
Creating namespaced components
ββββ βββ ββββββββ ββββββββββ βββββββββββ βββββ βββββββββββββ βββββββ βββ βββββββββββ βββββββββ ββββββββββ
β rails g phlex:component Forms::Input
create app/components/forms/input.rb
ββββ βββββββ β βββββββββ ββ ββββββββββββββββββββββββ ββββ βββ ββ ββββ ββββββββββ ββββ ββββββββββββ
When to use namespaces
ββββββββ βββββ ββββββββββ ββββ βββ βββββ
- ββββββββββ ββββββββββ ββββββ βββββββββββ βββββ ββββββββββ
- ββββββ ββββββ βββββββββββ ββββββββ ββββββ βββββββ ββββ ββββββββ
- ββββββββββββββββ βββββββββββ ββββ βββββββββ ββββββββ βββββ βββββββββ βββββββ
- βββββββββββ βββββββββββββ βββββββ ββββββ ββββββ βββββ βββββββ
Zeitwerk and autoloading
βββββ ββββ ββββββββ βββ ββββββββββββ βββββ βββββββββββββ βββββ ββββ βββββ ββββββββββ βββββ ββ βββββ ββββ ββββ βββ βββββ βββββ ββββ ββββββ
- ββββββββββββββββββββββββ ββββββ ββββββ ββββββββββββββββββ
- βββββββββββββββββββββββββββββ ββββββ ββββββ ββββββββββββββββββββββββ
- βββββββββββββββββββββββ ββββββ ββββββ ββββββββββββββββββ
βββββββββ βββββ βββββββββββ βββββββ ββββ ββββββββββ ββββ βββββββββββββ βββββββ ββββββ βββββββ βββββββββββ
Best practices for organization
- βββββ βββββββ βββββ ββββ β ββββ βββββββββ βββ βββ ββββββββββββ ββ βββ ββββββββ ββββββββ
- ββ βββββββββββ βββ βββ ββββ ββββββββββββββ ββββββββββ ββββββ ββββ ββββββ βββββββββββ
- βββββ ββ ββββββββ βββββββ ββββββββββ ββββββ ββββ ββββββββ
- βββββ ββββ ββββββββ ββββ βββββββββ ββββββββββ βββββββ ββ ββββββββ βββββββββββββββ
- βββ βββββββββββ ββββββ βββββββββ βββ βββββββββ βββββ ββββββ βββββββ ββββββββ βββββ βββββββ
ββ βββββββββ βββββ ββββββββββββββ βββββββββββ ββββββ ββββββββ β ββββββββ ββββ ββββββ ββββ βββ βββββββ ββββββββββββ βββ ββββ βββ βββ βββββββββββ ββββ ββββββββ