إضافة عينة البيانات إلى قاعدة البيانات باستخدام أشعل النار على القضبان المحرك
-
06-07-2019 - |
سؤال
أنا أحاول من القضبان محركات طريق إنشاء إعلانات مبوبة المحرك حيث يمكن للمستخدمين عرض/post/الرد على الإعلانات المبوبة.
الرئيسية التطبيق يحتوي على رمز مصادقة المستخدم و لمحات في حين أن هناك محركا التي خلقت والتي سوف تتعامل مع إعلانات مبوبة وظائف.
الآن أريد أن أضيف بعض نماذج البيانات إلى قاعدة بيانات إعلانات مبوبة المحرك.لذلك أنا خلقت الخليع ملف يسمى 'sample_classifieds_data.أشعل النار في بائع/الإضافات/إعلانات مبوبة/lib/المهام' وأضفت yml الملفات في 'بائع/الإضافات/إعلانات مبوبة/lib/المهام/sample_classifieds_data'
رمز أشعل النار الملف عينة yml يمكن العثور عليها هنا: http://gist.github.com/216776
الآن المشكلة أنه عند تشغيل الخليع المهمة ، أي خطأ يتم طرح ولكن القيم لا يحصلون على بالسكان في قاعدة البيانات.
أي أفكار ؟ راجع للشغل, هو بيئة تطوير و قاعدة البيانات هو تطوير قاعدة البيانات الخاصة بنا.
ركضت مماثل الخليع مهمة تعبئة نموذج المستخدمين في قاعدة البيانات التي عملت.موقع أن أشعل النار الملف 'sample_data.أشعل النار' كان يقع في 'lib/المهام'.
المحلول
ومهمتك تبدو جيدة. عن الشيء الوحيد الذي من شأنه أن يسبب مهمتك فشل بصمت هو أن الملف الذي يمر إلى Fixture.new لا يشير إلى ملف yml أو CSV.
والاختيار مزدوج عن طريق تعديل بيان وضع لطباعة المسار الكامل للملف هو المستوردة، ومقارنة ما يطبع ضد بنية الدليل الخاص بك.
وعلى سبيل المثال، سوف تفشل الأشياء بصمت إذا بدأت الملفات اعبا اساسيا لديك بحرف كبير؟ Categories.yml بدلا من categories.yml
نصائح أخرى
في القضبان الحافة، يمكنك استخدام ميزة rake db:seed
لإضافة دتس في وقت لقاعدة الخاص بك. اطلع على ارتكاب .
واستخدام بسيط جدا.
وإنشاء ملف db/seeds.rb
.
ووضع كل ما الرمز الذي تريد البذور قاعدة البيانات الخاصة بك في ذلك.
وعلى سبيل المثال:
Category.create!(:name => 'My Category')
Country.create!(:name => 'Cassoulet Land')
وعندما تريد البذور قاعدة البيانات الخاصة بك، يمكنك أن تفعل rake db:seed
إذا، لأي سبب من الأسباب، وكنت لا ترغب في استخدام حافة (التي ستكون مفهومة في بيئة الإنتاج)، يمكنك استخدام في بذور فو المساعد، والتي لا تماما خدعة للكم.
Db:البذور المهمة وأضاف في القضبان 2.3.4.لذلك لا تحتاج إلى تشغيل الحافة.