سؤال

أحاول haml العمل دون جوهره مع سيناترا (Heroku لا تسمح جوهرة تثبيت, بقدر ما أعرف)

ما قمت به حتى الآن:

  • استنساخ haml بوابة الريبو داخل المشروع

  • إضافة :تتطلب 'haml/lib/haml.rb إلى سيناترا الملف الرئيسي

الأعمال التالية:

get '/test' do
  Haml::Engine.new('%p test').render
end

ولكن بعد لا:

get '/test2' do
  haml :my_template
end

أحصل على خطأ :

NoMethodError - غير معروف طريقة each' for nil:NilClass (haml):20:inالتحميل

./haml/lib/haml/المحرك.rb:152:في `جعل'

./haml/lib/haml/المحرك.rb:152:في instance_eval'

./haml/lib/haml/المحرك.rb:152:في `جعل' ...

هل هناك أي ملفات أخرى تتطلب ؟ أي أفكار ؟

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

المحلول

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

haml --version '>= 2.2.0'

مزيد من المعلومات يمكن العثور عليها هنا: http://docs.heroku.com/gems

نصائح أخرى

اثنين من أكثر الاحتمالات واضحة (في ترتيب احتمال):

  1. هناك خطأ في بعض روبي البرمجية في Haml الملف.إذا كان يمكنك أن تجرب نفس الكود خارج سيناترا, لا تجعل بخير هناك ؟
  2. الملف my_template.haml إما هناك أو يسمى بشكل غير صحيح.

كما الاشياء mc أبدت استجابة petergassner الجواب, الطريقة الصحيحة للقيام بذلك الآن استخدام التطبيق الخاص بك Gemfile.في هذا Gemfile كنت تفعل

gem "haml", ">= 2.2.0"

Heroku يعرف عند دفع التطبيق الخاص بك لتثبيت الأحجار الكريمة المذكورة في gemfile.

ملاحظة أنه إذا كنت ترغب في استخدام sass وكذلك haml, قد تحتاج إلى القفز من خلال زوج من الأطواق للحصول على اقامة.الطريقة haml أعمل تشارك عادة الكتابة المترجمة css الملفات إلى القرص, وهي مشكلة على heroku فقط قراءة الملفات.شخص ما في نهاية المطاف كتب المساعد/جوهرة لحل هذا الوضع (ساس-في herku أو بعض من هذا القبيل).

حاليا ، haml-rails جوهرة يبدو أن تأخذ الرعاية من هذا باستخدام خط أنابيب الأصول ، ولكن إذا كنت تستخدم سيناترا ، هذا من المحتمل أن لا تعمل من أجلك.لذا عليك إما تريد أن ترى إذا كان واحد من تلك الأحجار الكريمة لا تزال في العملية ، أو تأخذ المشورة التي heroku يبدو حاليا تعتنق.هذه المقالة أيضا القضبان محددة ، ولكن يجب أن تكون قادرة على الحصول على الأشياء لتعمل بشكل مناسب سيناترا دون الكثير من الصعوبة.(أساسا ، لتلخيص نقطة هنا ، heroku الآن دعم الكتابة إلى tmp دليل طالما يمكنك تكوين كل من ساس جوهرة و سيناترا التطبيق لاستخدام بعض tmp موقع لهذا ، يجب أن تكون جيدة.)

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