2016-09-17 9 views
0

ユーザーがテーブルの列を更新するときを知る方法はありますか?たとえば、ユーザーはいつ姓を変更するのですか?最後にテーブルの列が変更されたとき

最後にテーブルが更新されたときに興味がありません。列のみ。 Rails 5とPostgreSQLを使用することは可能ですか?

答えて

1

モデルにタイムスタンプを含めた場合(.created_at.updated_at)、.updated_atはレコード(データベース行)が最後に更新された時刻を示します。

ただし、レコードのどの属性が変更されたかはわかりません(つまり、データベース列)。どのユーザーがそれを変更したか、システム内の何かによって自動的に変更されたかどうかはわかりません。

+0

テーブルにupdated_atなどがあります。属性が最後に更新されたときを知る必要があります。私は本当にこれが可能だと思った。 Ex(不可能、私が知っている): 'User.first.last_name.updated_at' – Sylar

+1

いいえ、細かい粒度のためにpapertrail gemなどを使用する必要があります。 –

+0

良いもの。私はそれをチェックします。ありがとう。 – Sylar

0

これを行うにはスキーマが必要です。 user_logsという新しいテーブルを作成し、old_recordとnew_recordを格納するトリガを実装できます。これは、変更のために必要なログを取得するのに役立ちます。

関連する問題