سؤال

لديّ مجموعة مع فهرس على: Created_AT (والتي يجب أن تكون في هذه الحالة بالذات تاريخًا)

من Rails ما هي الطريقة الصحيحة لحفظ الإدخال ثم استرداده حسب التاريخ؟

أحاول شيئًا مثل:

النموذج: الحقل: create_at ،: type => time

النصي:

col.create (: Create_at => time.parse (other_model.created_at) .to_s

و

col.find (: all ،: ظروف => {: create_at => time.parse (نفس الشيء)})

وهي لا تعيد أي شيء

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

المحلول

برنامج تشغيل Mongo و Orms مختلف كائنات الوقت والوقت وكائنات DateTime على ما يرام ؛ لا يوجد سبب لإلقاءهم على الأوتار.

Col.create(:created_at => another_model.created_at)

والاكتشاف:

Col.all(:created_at => another_model.created_at)

لا ترغب في وضع سلاسل ، لأن التواريخ يتم تخزينها داخليًا ككائنات تاريخ BSON ، ويتم فهرستها وتفتيشها على هذا النحو. إذا قمت بحفظها كقواسل ، فلن تتمكن من القيام بأشياء مثل مقارنات أكبر من/أقل/النطاق بشكل فعال.

نصائح أخرى

Col.create(:created_at => Time.parse(another_model.created_at).to_s)

سيمر هذا الخط كائن الوقت الخاص بك كسلسلة ، خلع to_s لإرسالها إلى طبقة تحليل النوع في ORM (mongomapper أو mongoid) ككائن زمني. هذا هو الخطأ الوحيد الذي يمكنني رؤيته الذي سيؤدي إلى عدم عمله.

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