- Views render data. No calculations, queries, or complex conditionals.
- Use presenters to display logic. Instantiate in controller, use in view.
- Extract repeated markup into partials. Pass data via
locals:, not instance variables. - Helpers for simple formatting only (dates, currencies). If longer than 5 lines, use a presenter.
- Turbo: return
status: :unprocessable_entityon failed forms. Keep Stimulus controllers small.