هل يعقل إنشاء جوهرة روبي تتكون من أجزاء قالب ريلز فقط؟

StackOverflow https://stackoverflow.com/questions/1623628

  •  06-07-2019
  •  | 
  •  

سؤال

أحاول أن أفهم ما الذي يعمل وما لا يعمل في Ruby Gems (في المقام الأول من منظور إنشاء واحدة لنفسي لإعادة استخدام الوظائف من مشروع إلى آخر).

عندما تقوم بإنشاء جوهرة روبي، هل تقتصر على تضمين وظائف روبي فقط أم يمكنك إنشاء جوهرة تتكون من قوالب ريلز وملفات CSS وجافا سكريبت؟

إذا كان الأمر كذلك، فكيف يمكن لمستخدم الجوهرة الوصول إلى تلك الموارد في مشروع ريلز (إلى جانب إضافة عبارة "config Gem" إلى ملف Environment.rb؟

هل كانت مفيدة؟

المحلول

لا لا.الأحجار الكريمة هي مكتبات التعليمات البرمجية، وليست ملفات ثابتة.

عندما تقوم بتحميل جوهرة، فإنك لا تنقل الملفات إلى الدليل العام الخاص بك.يمكنك تحميل ملف روبي والوصول إلى الوحدة النمطية.لذلك، يمكنك فقط تنفيذ كود روبي بداخله.
لكن كود روبي الخاص بك يمكن أن يوفر لك بعض المساعدين مما يسمح لك ببناء تصميمك بسهولة على سبيل المثال.

إذا كنت تريد تضمين بعض موارد الملفات الثابتة في كل مشروع من مشاريع روبي الخاصة بك، فأنا أرى حلين:

  • قم بإنشاء مشروع قالب، بما في ذلك جميع ملفات CSS وJavaScript وما إلى ذلك.التي تستخدمها في كل مرة.يمكنك أن تأخذ الحمالات كمثال على ذلك.

  • قم بإنشاء مستودع جديد يحتوي على كل هذه الملفات الثابتة وأضفه كوحدة فرعية (مع شخص سخيف أو svn) وإدراجه في كل مشروع من مشاريعك.

سيكون الحل الأول هو الحل المفضل لدي، ولكن قد ترغب في استخدام الحل الآخر.

نصائح أخرى

وكما يلاحظ dmathieu، والأحجار الكريمة هي للمكتبات روبي التي تم تثبيتها في مسار تحميل النظام، وليس للأشياء التي تدخل في دليل المشروع الخاص بك. إذا كنت لا تريد أن حزمة الخاص بك هيكل عظمي مشروع القضبان بمثابة جوهرة، على الرغم من أنه سيكون بسيطا بما فيه الكفاية لتنفيذ روبي الصغيرة التي كانت بمثابة مولد لنسخ شجرة المشروع هيكل عظمي في الدليل الهدف. هل يمكن بعد ذلك حزمة كل شيء حتى في جوهرة، ملفات الهيكل العظمي يمكن أن يجلس في دليل الأحجار الكريمة، ويمكن القول generate_new_project someproject إلى نسخها إلى دليل المشروع الجديد.

أنت <م> يمكن بسهولة إضافة جزئيات وغيرها من وجهات النظر HAML، باني، أو ERB. البنية التالية يجب أن تعمل:

# in my_gem/rails/init.rb
ActionController::Base.append_view_path(File.expand_path(File.join(File.dirname(__FILE__), '..', 'views')))

# in my_gem/views/my_gem/_some_partial.html.erb
This is a partial from MyGem!

# in your_rails_app/views/some_controller/some_view.html.erb:
<%= render :partial => '/my_gem/some_partial' -%>

وهذا لا يجيب مباشرة سؤالك حول الملفات الثابتة، وإن كان. غالبا ما يكون أفضل رهان هو مولد أن ينسخ CSS، JS، وغيرها من الملفات إلى الدليل العام الخاص بك. بدلا من ذلك، هل يمكن استخدام StaticFilesController ووضع الملفات الثابتة في هذا الدليل وجهات النظر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top