Dopo aver lavorato con ASP.Net MVC, ho pensato a Rails. Ho lavorato prima con Rails, ma sono un po 'arrugginito. Le esercitazioni di ASP.Net MVC consigliano di nascondere l'implementazione del livello dati con il modello di repository. Ciò consente l'iniezione delle dipendenze easiesr per i test unitari e il disaccoppiamento graduale del controller dall'implementazione del modello.Ruby on Rails con pattern di deposito?
Ricordo i controller di Rails che utilizzavano direttamente oggetti Active Record e test di unità usando database di test che potevano essere impostati e abbattuti con facilità. Ciò risolve la necessità di sostituire i test unitari, ma sembra comunque una cattiva idea avere così tanto codice ActiveRecord esposto nel controller.
Quindi la mia domanda è, qual è l'ultima best practice qui? I database reali (non presi in giro) sono ancora utilizzati per il test delle unità? Gli sviluppatori di Rails chiamano ActiveRecord direttamente o un'astrazione?
sì 1000x costituisce un livello dati. non è abbastanza strettamente connesso all'uso di stringhe SQL specifiche del fornitore, ma le classi AR mappano 1 a 1 con le tabelle del database per la maggior parte. esso (e questo è vero per i binari in generale) incoraggia uno stile di programmazione in cui non vi è alcuna differenza tra gli oggetti di business e le tabelle di db. l'RP è specificamente progettato per fare questa distinzione. – Jonah