Mongoid menyimpan dokumen yang disematkan dan atribut Hash dengan cara yang hampir sama di tingkat basis data. Itu normal ketika bekerja dengan mongoid untuk mendeklarasikan bidang Anda dalam model Anda, jadi jika Anda memiliki struktur bersarang, itu normal untuk membuat dokumen yang disematkan. Karena MongoDB tanpa skema, mongoid membutuhkan Anda untuk mendeklarasikan bidang untuk menampilkannya dalam jenis API yang sama seperti yang dilakukan ActiveRecord. Tetapi untuk beberapa kasus penggunaan, atribut Hash memberi Anda sedikit lebih banyak fleksibilitas. Kelemahan dari fleksibilitas itu adalah Anda terbatas pada Hash API sehingga Anda tidak mendapatkan metode atribut yang dibuat secara otomatis dan Anda tidak dapat merangkum logika bisnis dengan cara yang biasanya Anda lakukan dalam kelas model.
Sebagai contoh, misalkan Anda memiliki model Kuesioner di mana Anda perlu menyimpan banyak bagian yang berisi banyak pasangan tanya jawab. Jika persyaratan utama sistem adalah agar administrator dapat menyiapkan bagian dan pertanyaan baru, maka Anda tidak akan dapat dengan mudah memodelkan jawaban sebagai dokumen tertanam biasa yang berisi bidang eksplisit untuk setiap pertanyaan. Untuk hal semacam itu, Hash mungkin lebih masuk akal.
Saya tidak tahu apa persyaratan spesifik Anda, tetapi sebagai panduan kasar, saya akan mengatakan bahwa ketika Anda bekerja dengan skema tetap dengan dokumen yang disematkan, tetapi ketika Anda membutuhkan model terbuka, pertimbangkan atribut Hash.