Rails - как добавить метки времени к модели? - PullRequest
5 голосов
/ 24 ноября 2011

У меня есть существующая модель (и таблица) с этими столбцами: id, name, city.В этой таблице приведены данные, и я хотел бы, чтобы в эту таблицу были добавлены столбцы created_at и updated_at - кто-нибудь может мне помочь, как это сделать?Я имею в виду - если я создаю модель, поэтому эти два столбца создаются автоматически, а информация о времени всегда вставляется автоматически, когда я что-то сохраняю.

Теперь возможно добавить эти два столбца с автоматической вставкой времени.данные

Ответы [ 3 ]

13 голосов
/ 25 ноября 2011

Это должно позволить вам добавить столбцы меток времени к уже существующей модели

rails generate migration add_timestamps_to_users

Это создаст файл миграции для вас. Откройте его и внесите необходимые изменения

class AddTimestampsToUsers < ActiveRecord::Migration
  # in my example i'm using `users` table; change this to match your table name
  def change_table :users do |t|
    t.timestamps
  end
end

Затем перенесите базу данных

rake db:migrate
12 голосов
/ 15 декабря 2013

Следует отметить, что, хотя ответ Мачака прав, он не использует правильный синтаксис для миграций (забыл метод "change").

Итак, вот его ответ с исправленным синтаксисом:

Это должно позволить вам добавить столбцы меток времени к уже существующей модели

rake generate migration add_timestamps_to_users

Это создаст файл миграции для вас. Откройте его и внесите необходимые изменения

class AddTimestampsToModel < ActiveRecord::Migration
  # in my example i'm using `users` table; change this to match your table name
  def change
    change_table :users do |t|
      t.timestamps
    end
  end
end

Затем перенесите базу данных

rake db:migrate
7 голосов
/ 17 ноября 2016

add_timestamps - специальный метод для этой цели:

class AddTimestampsToUsers < ActiveRecord::Migration
  def change
    add_timestamps :users
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...