2012-03-05 9 views
7

Sto usando Rails per un paio di mesi, e sto scrivendo abbastanza comodo un progetto & manipolare Rails alle mie esigenze, eccModifica Rails: come fanno gli utenti esperti a scoprire cosa è necessario modificare?

Recentemente ho cercato di ottenere un po 'più avanzato, quindi ho tentato di modificare/aggiungere al codebase delle guide esistenti: aggiungere nuovi metodi helper per i moduli, aggiungere un answers_to: metodo pdf, ecc ... e ho avuto un sacco di problemi.

La difficoltà è imparare quale codice devo modificare; dove si trova quel codice e come assicurarsi di non perdere il codice correlato in altri file. Immagino che ci sia un modo in cui la gente impara a farlo, ma al momento sono per lo più solo indovinando e sperando.

Credo che la mia domanda sia: come vanno le persone di Rails a sapere da dove viene modificato il codice che devono modificare? & l'approccio alla modifica? Sembra che sia solo qualcosa che devi sapere da una precedente familiarità, ma suppongo che ci debba essere un metodo semplice per capire dove (e cosa) modificare.

Tutte le idee apprezzate ... evviva

+0

Quello che hai descritto è abbastanza preciso per quello che faccio! –

+0

bella domanda, mi piacerebbe sapere come fanno gli altri. Io uso semplicemente [doc API] (http://apidock.com/rails) per dare un'occhiata al codice sorgente fino a quando non capisco la meccanica. Un altro modo per acquisire conoscenza ... è lo stack overflow! quando ho iniziato ad imparare i binari, ero solito scansionare tutte le domande relative ai binari e ho cercato di trovare la risposta da solo. Facendo questo, ho imparato molto sugli interni delle rotaie. tuttavia, non sono sicuro che questa domanda appartiene qui. Forse su http://codereview.stackexchange.com? –

risposta

3

consiglio vivamente di Jose Valim Crafting Rails Applications

Si passa attraverso progetti avanzati, costruendo i tipi di motori e personalizzazioni che vi porterà al livello successivo nel vostro sviluppo Rails.

Dal sito:

Questo libro vi aiuterà a capire funzionamento interno Rails 3, tra cui generatori, i gestori dei modelli, l'internazionalizzazione, routing e responder.

+0

Grazie per la risposta. Ho letto Crafting e mi sono divertito, ma non ho avuto molte informazioni su una metodologia per comprendere parti non familiari del framework. Una metodologia per creare gemme, sì - ma laddove il framework era aperto, sembrava che ci fosse più di un approccio di "basta digitare questo in" invece di come si otterrebbe una comprensione delle parti del framework che vengono modificate. – PlankTon

+0

@unclaimedbaggage Se hai padronanza di Crafting, è ora che tu ti tuffi. Esegui i test di rake, apporta le modifiche, esegui di nuovo i test. Ripetere. Non c'è un tour guidato a quel livello. –

-2

Quello che stiamo chiedendo è come MVC opere. Fondamentalmente puoi dire:

1.) Metti la logica al modello! Il modello è il perno tutto gira intorno.

2.) Il controller è un intermediario tra il modello e la vista. Non mettere qui alcuna logica che non sia correlata alla selezione dei dati dal database che dovrebbero essere visualizzati nella vista. Se si utilizza una logica di selezione più di una volta, creare un scope nel modello e utilizzarlo nel controller.

3.) La vista è solo lì per visualizzare le cose! Non mettere alcuna logica qui! Tutta la logica viene dal modello e i dati provengono dal controller. L'unica logica che usi qui sono cicli attraverso matrici di dati che dovrebbero essere visualizzati.

Quindi mancano alcune cose. Se hai un'attività correlata a un servizio esterno come diciamo un servizio SOAP, scrivi una classe anche per questo! Solo senza usare l'ereditarietà di ActiveRecord :: Base come se fosse generata dallo scaffolder. Puoi chiamare questa Classe in altri modelli. Non mettere questo al controller o copiare il codice in ogni classe che ne ha bisogno! Stay DRY (Non ripetere te stesso). Basta scrivere un corso per questo e includerlo negli altri modelli!

Un'altra cosa che è un database di base: non memorizzare i dati che potrebbero essere calcolati da altri campi dal database! Puoi aggiungere metodi che calcolano le cose che ti servono ma non iniziare con i duplicati.

+0

Grazie per la risposta, ma non proprio quello che stavo cercando. Sono a mio agio nell'usare le rotaie e integrare gli script ruby. Sta estendendo/sovrascrivendo la struttura stessa che mi spaventa. ;-) – PlankTon

Problemi correlati