اذهب إلى المحتوى

السؤال

نشر

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

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

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

Recommended Posts

  • 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 وسَيُحدّث قيمتها كالعادة.
المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...