Rails è costruito attorno al pattern MVC. Tre responsabilità separate, ognuna con un compito solo.
- Model: parla col database e contiene le regole di business (
app/models). - View: mostra i dati all'utente (
app/views). - Controller: riceve la richiesta, chiede i dati al Model e sceglie la View (
app/controllers).
class LaunchesController < ApplicationController
def index
@launches = Launch.upcoming.limit(10) # Model
end # la view mostra @launches
end
La regola d'oro: fat model, skinny controller. La logica vive nel Model, il Controller coordina soltanto. Se un controller inizia a gonfiarsi di if, è il segnale che quella logica deve traslocare altrove.