Как я могу добиться функциональности, аналогичной «автоматической вставке меток времени» - PullRequest
1 голос
/ 20 сентября 2011

У меня есть пара полей created_by и updated_by в большинстве моих таблиц.Это будет содержать идентификатор пользователя, который создал или обновил объект.возможно ли иметь подобную функцию, например, как рельсы обрабатывают created_at?Я в основном хочу, чтобы он функционировал так же, как вставка меток времени.Я должен быть в состоянии определить в столбцах в сценарии миграции и настроить рельсы для выборки пользовательского объекта из вспомогательного метода каждый раз, когда он изменяет конкретный объект.Есть ли прямой способ сделать это или есть плагин, который делает это?

Ответы [ 2 ]

3 голосов
/ 21 сентября 2011

Также вы можете сделать это без драгоценных камней, но с помощью Rails Observers

Вы можете создать наблюдателя так:

class UserTouchObserver < ActiveRecord::Observer
  observe :product, :post, :comment

  def after_create(model)
    update_attribute(:created_by, current_user.id) if model.respond_to?(:created_by)
  end

  def after_update(model)
    update_attribute(:updated_by, current_user.id) if model.respond_to?(:updated_by)
  end
end
2 голосов
/ 20 сентября 2011

Мне удалось найти несколько плагинов на github, которые делают именно это:

...