Bagaimana cara berbagi tata letak dan aset antara dua aplikasi Rails yang terpisah?

Saat ini saya sedang memigrasikan aplikasi Rails 2.x.x lama ke Rails 3.2. Saya melakukan ini dengan memecah bagian tertentu dari aplikasi monolitik menjadi aplikasi kecil yang terspesialisasi. Masalah saya terletak pada duplikasi kode. Aplikasi yang lebih kecil akan berbagi kode sisi klien yang sama untuk tata letak umum, javascript, dan css. Bagaimana cara mengemas tata letak dan kode sisi klien sehingga dapat dibagikan di antara aplikasi terpisah yang berdiri sendiri? Dugaan awal saya adalah hal ini dapat dilakukan dengan mesin yang dapat dipasang. Tapi saya tidak yakin apakah itu berlebihan atau tidak.


person Jim Jeffers    schedule 16.04.2013    source sumber
comment
submodul git atau mesin baik-baik saja   -  person apneadiving    schedule 16.04.2013
comment
Jika Anda menyukai solusi tingkat rendah, Anda selalu dapat membuat tautan simbolik ke folder yang berisi tata letak.   -  person Oto Brglez    schedule 16.04.2013
comment
Digandakan: stackoverflow.com/questions/2669477/   -  person fotanus    schedule 16.04.2013


Jawaban (1)


Saya menulis blog http://blogs.pigrider.com/blogs/22 untuk menunjukkan bagaimana saya membangun mesin tata letak bersama untuk digunakan dalam beberapa aplikasi di Rails 3.2 langkah demi langkah.

Sekilas ke blog saya:

Blog ini menunjukkan bagaimana saya membangun mesin Rails untuk berbagi tata letak di antara beberapa aplikasi langkah demi langkah. Cara saya membangun mesin tata letak bersama di blog ini mungkin bukan yang terbaik. Namun saya hanya ingin memberikan sedikit petunjuk kepada mereka yang masih bergelut dalam membangun mesin semacam ini.

  1. Nama mesin saya adalah "PigriderLayout". Jalankan plugin command rails new PigriderLayout --mountable -d mysql untuk membuat proyek mesin baru. Disini saya menggunakan -d mysql karena saya menggunakan MySQL sebagai database. Anda dapat mengubahnya agar sesuai dengan database Anda, dan jangan lupa untuk menambahkan permata database yang sesuai ke dalam Gemfile. Saya memasukkan permata 'mysql2', '0.3.11' ke dalam Gemfile saya.

  2. Hasilkan pengontrol untuk semua konten tata letak bersama. Jalankan perintah ini Rails generate controller main globalLayout aboutUs contactUs. Di sini saya memiliki tiga tindakan di pengontrol utama ini. Lalu edit file config/routes.rb, biarkan seperti ini:

    PigriderLayout::Engine.routes.draw jangan
    cocok dengan "AboutUs"=>"main#aboutUs", :as=>:aboutUs
    cocok dengan "ContactUs"=>"main#contactUs", :as= >:hubungiKami
    selesai

  3. Di direktori app/views/pigrider_layout/main, Anda akan melihat tiga file tampilan sekarang. Mereka adalah globalLayout.html.erb, aboutUs.html.erb, dan contactUs.html.erb. Anda dapat menulis apapun yang Anda inginkan di aboutUs.html.erb dan contactUs.html.erb. Di file globalLayout.html.erb, saya menulis:

......

person user2684801    schedule 15.08.2013
comment
Silakan coba baca stackoverflow.com/help/deleted-answers ini, untuk lebih memahami cara tidak jawaban. Yaitu: Jawaban yang tidak menjawab pertanyaan secara mendasar: hanya lebih dari sekadar tautan ke situs eksternal - person Radim Köhler; 15.08.2013