---
title: Follow MVC architecture strictly
impact: CRITICAL
impactDescription: Maintain clear separation of concerns.
tags: rails, architecture, mvc, design
---

## Follow MVC architecture strictly

Maintain clear separation of concerns. Models should handle data and business logic, Views should only handle presentation, and Controllers should coordinate between them. Avoid business logic in views or controllers.

**Incorrect:**

```erb
<%# View with business logic %>
<% if @user.orders.sum(&:price) > 1000 %>
  <span class="premium">Premium</span>
<% end %>
```

**Correct:**

```ruby
# Model
class User < ApplicationRecord
  def premium?
    orders.sum(&:price) > 1000
  end
end

# View
<% if @user.premium? %>
  <span class="premium">Premium</span>
<% end %>
```

**Tools:** Manual Review, Architectural Check
