- Dapat berisi kode untuk memanipulasi data. Misalnya, model Search Form, selain mewakili data input pencarian, mungkin berisi metode pencarian untuk mengimplementasikan pencarian yang sebenarnya.
- Tetap menjaga untuk tidak meletakkan kode terlalu banyak pada model karena akan mempersulit saat maintenance.
- Menghindari penulisan kode yang digunakan untuk menangani interaksi pengguna secara langsung pada model.
- Menghindari meletakkan kode html atau statement presentasi lainnya.
View
Agar View dapat digunakan pada komponen-komponen lain dapat didefinisikan menjadi beberapa bagian berikut:
Controller
- Berisi kode yang digunakan untuk menyusun tampilan (html).
- Kode logika hanya digunakan untuk melakukan formatting tampilan (misal rendering list).
- Menghindari penulisan query db secara langsung.
- Menghindari penanganan request secara langsung dari pengguna (misal parsing request body, dsb).
- Layout: bagian besar yang basic, misalnya header dan footer.
- Partial: misal section untuk filter.
- Widgets: apabila terdapat partial yang membutuhkan banyak logika untuk melakukan handle tampilan.
- Helper: fungsi-fungsi yang dibutuhkan oleh tampilan,misalnya formatting currency.
- Dapat langsung melakukan manipulasi pada atribut request seperti URL Query maupun request body.
- Membuat instance model dan melakukan manajemen lifecycle model tersebut.
- Menghindari penyertaan statement SQL ataupun database secara langsung.
- Menghindari penyertaan kode HTML maupun logika yang digunakan untuk presentasi.