• 0

كيف أُضيف timestamps إلى جدول في ريلز؟

أحتاج إلى إضافة timestamps (created_at updated_at) إلى جدول مُنشأ، حاولت استخدام الشيفرة البرمجية التالية لكنها لم تعمل:

class AddTimestampsToUser < ActiveRecord::Migration
    def change_table
      add_timestamps(:users)
    end
end

جرّبت عدة حلول أخرى وجدتها على الإنترنت لكنها لم تعمل.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

الشيفرة التي كتبتها شبه صحيحة، فقط تحتاج إلى استخدام اسم تابع مختلف، فإذا كنت تستخدم ريلز 3.1 أو أحدث، يمكنك تعريف تابع change بدلا من change_table كما في المثال التالي:

class AddTimestampsToUser < ActiveRecord::Migration
  def change
    add_timestamps(:users)
  end
end

وإذا كنت تستخدم نسخة أقدم فستحتاج إلى تعريف توابع up وdown بدلا من change_table:

class AddTimestampsToUser < ActiveRecord::Migration
  def up
    add_timestamps(:users)
  end

  def down
    remove_timestamps(:users)
  end
end

هنالك حل آخر، يمكنك إضافة هذه الأعمدة عن طريق تحديد أنواع الأعمدة يدويا كما في الأمثلة التالية:

class AddTimestampsToUser < ActiveRecord::Migration
    def change_table
      add_column(:users, :created_at, :datetime)
      add_column(:users, :updated_at, :datetime)
    end
end

سوف يتعامل ريلز مع هذه الأعمدة كأعمدة timestamp وسَيُحدّث قيمتها كالعادة.
المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن